我有一些文件包含每行一个网址,例如
...
我尝试编码:
import wget
with open ("5074_url.txt", encoding='utf-8', mode = 'r') as f:
for line in list(f): # OR f.readlines()
filename = wget.download(line)
print (filename)
但提出错误消息:
Traceback (most recent call last):
File ".\Geturl2.py\", line 33, in <module>
filename = wget.download(line)
File "C:\Program Files (x86)\Python\lib\site-packages\wget.py", line 506, in download
(fd, tmpfile) = tempfile.mkstemp(".tmp", prefix=prefix, dir=".")
File "C:\Program Files (x86)\Python\lib\tempfile.py", line 342, in mkstemp
return _mkstemp_inner(dir, prefix, suffix, flags, output_type)
File "C:\Program Files (x86)\Python\lib\tempfile.py", line 260, in _mkstemp_inner
fd = _os.open(file, flags, 0o600)
OSError: [Errno 22] Invalid argument: '.\\page-1.jpg\ngjf6wrvy.tmp'
\ ngjf6wrvy.tmp 这是什么?文件中没有这个,我确定。
我在Windows 10上使用Python 3.6.5
我知道它可以使用urllib.request.urlretrieve(url, filename)
,
但它有文件名选项。我不想改变文件名。
那么如何不更改文件名?
[解决]
import wget
with open ("5074_url.txt", encoding='utf-8', mode = 'r') as f:
for url in f.readlines():
filename = wget.download(url.strip())
print (filename)
非常感谢你的帮助!!!
答案 0 :(得分:1)
我不知道你究竟要做什么,但这里有一个请求的例子:
#!/usr/bin/env python
import os
import requests
with open('test.txt', 'r') as f:
for url in f.readlines():
r = requests.get(url.strip())
print(r)
这将“下载”test.txt
中包含的每个URL并存储在内存中。变量r
包含Response object。