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

tec*_*lty 3 python urllib web-scraping python-3.x urlretrieve

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

urllib.request.urlretrieve(url, '/downloads/2017/foo.txt')
Run Code Online (Sandbox Code Playgroud)

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

文件“C:\ 2017/foo.txt'

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

urllib.request.urlretrieve(url, 'foo.txt')
Run Code Online (Sandbox Code Playgroud)

它愉快地下载文件。

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

tec*_*lty 5

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

for i in directories:
    if not os.path.isdir(i):
        os.makedirs(i)
Run Code Online (Sandbox Code Playgroud)

如果您仍然收到FileNotFoundError.