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

Download file with urlretrieve() to subfolder

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

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

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

File "C:\Program Files\Python36\lib\urllib\request.py", line 258, in urlretrieve tfp = open(filename, 'wb') FileNotFoundError: [Errno 2] No such file or directory: '/downloads/2017/foo.txt'

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

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

它愉快地下载文件。

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

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

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

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