2015-01-07 20 views
1

我有一个简单的任务,但不能让我的代码工作。我想遍历我的文本文件中列出的URL并使用Python中的wget命令进行下载。每个URL都放在文本文件中的单独一行中。wget循环到文本文件中的所有行(url)并下载Windows

基本上,这是该列表的文本文件我的结构:

http://e4ftl01.cr.usgs.gov//MODIS_Composites/MOLT/MOD11C3.005/2000.03.01/MOD11C3.A2000061.005.2007177231646.hdf

http://e4ftl01.cr.usgs.gov//MODIS_Composites/MOLT/MOD11C3.005/2014.12.01/MOD11C3.A2014335.005.2015005235231.hdf

http://i.stack.imgur.com/Oubyh.png

所有网址都大约178线。然后将其保存在当前工作目录中。

下面是我工作的初始代码:

import os, fileinput, urllib2 as url, wget 
os.chdir("E:/Test/dwnld") 
for line in fileinput.FileInput("E:/Test/dwnld/data.txt"): 
    print line 
    openurl = wget.download(line) 

的错误信息是:

Traceback (most recent call last): File "E:\Python_scripts\General_purpose\download_url_from_textfile.py", line 5, in <module> 
    openurl = wget.download(line) File "C:\Python278\lib\site-packages\wget.py", line 297, in download 
    (fd, tmpfile) = tempfile.mkstemp(".tmp", prefix=prefix, dir=".") File "C:\Python278\lib\tempfile.py", line 308, in mkstemp 
    return _mkstemp_inner(dir, prefix, suffix, flags) File "C:\Python278\lib\tempfile.py", line 239, in _mkstemp_inner 
    fd = _os.open(file, flags, 0600) OSError: [Errno 22] Invalid argument: ".\\MOD11C3.A2000061.005.2007177231646.hdf'\n.frbfrp.tmp" 
+1

你的文件名包含一个换行字符(''\ n'')。使用'openurl = wget.download(line.strip())'去除空格。 – eryksun

+0

@eryksun是正确的。我也很难调试同样的问题。 – JSong

回答

0

尝试使用urllib.urlretrieve。检查这里的文档:https://docs.python.org/2/library/urllib.html#urllib.urlretrieve

+0

嗨,alexm,谢谢你的回复。 urllib的作品。但是,你能帮我解决这个小问题吗?截至目前,urllib正在下载文件,但将其放置在临时文件夹中。我想把它放在我当前的工作目录中,其文件名与我的文件的基本名称相同。以下是修改后的代码: – user32145

+0

嗨alexm,谢谢你的回复。 urllib的作品。但你能帮我解决我的问题吗?截至目前,urllib正在下载文件,但将其放置在临时文件夹中。我想把它放在我当前的工作目录中,其文件名与我的文件的基本名称相同。我正在运行它,但它会抛出一个错误:IOError:[Errno 22]无效模式('wb')或文件名:'MOD11C3.A2000061.005.2007177231646.hdf \ n'。基本上,我所做的是创建一个输出变量,其中包含每个URL的输出路径和基本名称。这是带有问题的代码行openurl = urllib.urlretrieve(line,output)。谢谢 – user32145

+0

您可以通过执行如下操作来将文件放置在您想要的位置:'''urllib.urlretrive('http://yourlink.com /file.pdf','/path/to/local_file.pdf')''' – alexm92

相关问题