使用urlretrieve()将文件下载到子文件夹

时间:2017-09-25 20:28:41

标签: python python-3.x web-scraping urllib urlretrieve

是否可以使用urlretrieve()将内容下载到子文件夹中而不以绝对但相对的方式表达它? 例如:

urllib.request.urlretrieve(url, '/downloads/2017/foo.txt')

每次我添加文件名python的路径时都会抛出以下错误:

  

文件" C:\ Program Files \ Python36 \ lib \ urllib \ request.py",第258行,在urlretrieve中       tfp = open(文件名,' wb')   FileNotFoundError:[Errno 2]没有这样的文件或目录:' /downloads/2017/foo.txt'

但是当我使用这段代码时:

urllib.request.urlretrieve(url, 'foo.txt')

很高兴下载该文件。

我想我在这里遗漏了一些基本的东西,但是在搜索了这个互联网很长一段时间之后我还没有找到答案。有谁知道如何在urlretrieve()方法中表达相对文件路径?

1 个答案:

答案 0 :(得分:2)

使用urllib.request.urlretrieve()时,如果要将文件保存在程序位置以外的其他位置,则需要确保已存在的文件夹已存在。或者,您可以使用以下代码生成所需的文件夹(如果它们不存在):

for i in directories:
    if not os.path.isdir(i):
        os.makedirs(i)

如果您仍然获得FileNotFoundError,请检查拼写错误。