【发布时间】:2012-03-14 12:08:46
【问题描述】:
我正在尝试为 Linux 创建一个“下载管理器”,让我可以使用多个线程下载一个文件。这就是我想要做的:
- 通过指定偏移量将要下载的文件分成不同的部分
- 将不同的部分下载到一个临时位置
- 将它们合并到一个文件中。
第 2 步和第 3 步是可以解决的,但我在第 1 步遇到了困难。下载文件时如何指定偏移量?
使用类似于open("/path/to/file", "wb").write(urllib2.urlopen(url).read()) 的内容不允许我指定读取的起点。有没有其他选择?
【问题讨论】:
-
为什么要多线程下载?下载不会更快。
-
你不能使用多个文件然后合并吗?您为远程文件的每个块保存一个临时目录中的文件,然后合并所有内容。
-
@JakubZaverka :通常是这样。如果您尝试使用
wget和像DownThemAll(对于Firefox)这样的下载管理器下载相同的文件,甚至尝试使用wget使用this 进行多线程wget,您会看到差异。 -
@hurtledown : 我的问题是,我如何下载单个文件的不同部分?
标签: python download urllib2 fedora