我有一些文件每行包含一个URL,例如
- https://url/url/url.com/page-1.jpg
- https://url/url/url.com/a.mp3
- https://url/url/url.com/b.mp3
....
我尝试编码:
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)Pythonlibsite-packageswget.py", line 506, in download
(fd, tmpfile) = tempfile.mkstemp(".tmp", prefix=prefix, dir=".")
File "C:Program Files (x86)Pythonlibtempfile.py", line 342, in mkstemp
return _mkstemp_inner(dir, prefix, suffix, flags, output_type)
File "C:Program Files (x86)Pythonlibtempfile.py", line 260, in _mkstemp_inner
fd = _os.open(file, flags, 0o600)
OSError: [Errno 22] Invalid argument: '.\page-1.jpgngjf6wrvy.tmp'
gjf6wrvy.tmp 这是什么?文件中没有这个,我敢肯定。
我在 Windows 3.6.5 上使用 Python 10
我知道它可以使用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)
非常感谢您的帮助!!
我不知道
你到底想实现什么,但这里有一个请求的例子:
#!/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
包含响应对象。