使用shutil.move()后文件移至未知路径,求定位文件位置
文件被移动到哪里了?
你的文件被移动到当前Python脚本运行的工作目录下的2022 06文件夹里了。
原因解析
当你使用不带盘符的相对路径(比如2022 06)时,Python会默认将其解析为相对于**当前工作目录(Current Working Directory)**的路径,而非源文件所在的目录。你可以在脚本中加入以下代码查看当前工作目录:
import os print(os.getcwd())
运行后输出的路径,就是存放2022 06文件夹的位置。
另外,代码没有报错是因为shutil.move完全支持相对路径——只要目标文件夹存在(你代码里通过os.path.exists(dst)做了判断),就会正常执行移动操作,不会因为缺少盘符触发错误。
修正方案
如果希望把文件移动到源文件所在目录下的年月文件夹,可以修改dst的生成逻辑,将其基于源文件的父路径path构建:
import os import shutil import time # 假设path和file为已定义变量 src = os.path.join(path, os.path.basename(file)) # 获取文件修改时间对应的年月字符串 year_month = time.strftime('%Y %m', time.gmtime(os.path.getmtime(os.path.join(path, file)))) # 将dst设置为path目录下的年月文件夹 dst = os.path.join(path, year_month) if os.path.exists(dst): shutil.move(src, dst)
同时建议把path+'\\'+file替换为os.path.join(path, file),这样能适配不同操作系统的路径分隔符,避免潜在的路径错误。
内容的提问来源于stack exchange,提问作者Jaaziel Aguirre
相关产品推荐
相关产品推荐

