如何修改urllib.urlretrieve下载路径?调整Instagram Bot下载目录
嘿,我来帮你搞定这个下载路径修改的问题,其实很简单,分两步给你说清楚:
一、修改你的Instagram Bot代码到指定路径
首先你需要确保目标目录D:\PythonProjects\InstagramBot\downloads\user存在,不然直接下载会报错。我们可以用Python的os模块自动创建目录,然后把完整的文件路径传给urlretrieve就行。修改后的代码如下:
import os import urllib.request import time # 定义你想要的下载目录 target_download_dir = r"D:\PythonProjects\InstagramBot\downloads\user" # 自动创建目录,如果已经存在也不会报错 os.makedirs(target_download_dir, exist_ok=True) print("DOWNLOADING " + str(len(saved_video_links)) + " VIDEOS") time.sleep(1) for x in range(len(saved_video_links)): print("[" + str(len(saved_pic_links)+x+1) +"/" + str(amount_of_posts) + "]") # 用os.path.join拼接目录和文件名,避免手动拼字符串出错 full_file_path = os.path.join(target_download_dir, f"{username}_vid_{x}.mp4") # 把完整路径传给urlretrieve的第二个参数 urllib.request.urlretrieve(saved_video_links[x], full_file_path, MyProgressBar())
这里几个关键点:
os.makedirs(..., exist_ok=True):帮你自动创建多级目录(比如如果downloads或者user目录不存在,都会一起创建),而且如果目录已经存在也不会抛出错误,很省心。os.path.join():比你手动用+拼接路径更安全,它会自动适配Windows的\和其他系统的/分隔符,避免路径格式错误。
二、urllib.request.urlretrieve修改下载路径的核心逻辑
其实urlretrieve的第二个参数filename,如果只传文件名(比如你之前的username + "_vid_" + str(x) + ".mp4"),它默认会把文件下载到当前Python脚本的运行目录(也就是你的项目根目录D:\PythonProjects\InstagramBot)。
要修改下载路径,只需要给filename传完整的文件路径(包含目标目录和文件名)就行:
- 比如直接写死路径:
r"D:\PythonProjects\InstagramBot\downloads\user\username_vid_0.mp4"(加r前缀是为了避免路径里的\被当成转义字符) - 更推荐的方式是用
os.path.join()来拼接,就像上面代码里那样,既灵活又不容易出错。
这样修改之后,你的视频就会自动下载到D:\PythonProjects\InstagramBot\downloads\user目录里啦!
内容的提问来源于stack exchange,提问作者derpascal
相关产品推荐
相关产品推荐

