Python os路径操作重复运行报[WinError 3]系统找不到指定路径怎么解决
问题原因
首次运行代码最后执行了os.chdir(temp_path),将当前工作目录切换到了目标路径C:\Users\18327\Desktop\New\Temp。第二次运行代码时:
os.getcwd()获取到的当前工作目录已经不是初始的桌面路径,而是上一次切换后的目标路径- 将当前工作目录和相对路径
New\Temp拼接后,会生成不存在的路径C:\Users\18327\Desktop\New\Temp\New\Temp,进而触发文件不存在报错
解决方法
两种修改方案任选即可:
方案1:直接使用绝对路径切换(稳定性最高)
你已经明确定义了目标路径的绝对地址,直接用该地址切换目录即可,无需额外计算相对路径和拼接,完全不受当前工作目录变化影响:
import os # 直接使用预先定义的目标绝对路径 target_path = "C:/Users/18327/Desktop/New/Temp/" os.chdir(target_path) # 验证切换后的路径 print(os.getcwd())
方案2:固定拼接基准为初始桌面路径
如果需要保留相对路径计算逻辑,把路径拼接的基准固定为你预先定义的桌面路径start,不要使用每次运行都会动态变化的os.getcwd()结果作为拼接基准:
import os # 目标文件夹绝对路径 my_path = "C:/Users/18327/Desktop/New/Temp/" # 基准桌面路径 start = "C:/Users/18327/Desktop" # 计算相对路径 relative_path = os.path.relpath(my_path, start) print(relative_path) # 固定用桌面路径作为拼接基准 temp_path = os.path.join(start, relative_path) print(temp_path) os.chdir(temp_path) # 输出当前路径验证 print('current path is {}'.format(os.getcwd()))
内容的提问来源于stack exchange,提问作者Iwishworldpeace
相关产品推荐
相关产品推荐

