如何从批处理文件下载文件



我有一些文件每行包含一个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包含响应对象。

最新更新