不使用os.chdir实现跨盘符指定文件的移动/复制(Windows任务计划)
实现文件移动/复制(无需切换目录)及Windows任务计划配置
Python脚本实现
不用os.chdir()的核心是全程使用绝对路径,结合glob匹配含通配符的文件名,用shutil完成复制/移动操作。
复制文件示例
import glob import shutil # 定义绝对路径 target_dir = r"E:\Y" # 匹配规则:文件名包含ABC,支持通配符(*匹配任意字符,?匹配单个字符) file_pattern = r"D:\X\*ABC*.*" # 遍历匹配到的文件 for file_path in glob.glob(file_pattern): try: # copy2保留文件元数据(创建时间、修改时间等) shutil.copy2(file_path, target_dir) print(f"已复制文件: {file_path}") except Exception as e: print(f"复制文件失败 {file_path}: {str(e)}")
移动文件示例
将上述代码中的shutil.copy2替换为shutil.move即可:
import glob import shutil target_dir = r"E:\Y" file_pattern = r"D:\X\*ABC*.*" for file_path in glob.glob(file_pattern): try: shutil.move(file_path, target_dir) print(f"已移动文件: {file_path}") except Exception as e: print(f"移动文件失败 {file_path}: {str(e)}")
关键说明
- 路径前加
r表示原始字符串,避免转义字符冲突 glob.glob()支持标准通配符:*匹配任意长度字符,?匹配单个字符,[]匹配指定范围字符(如[0-9]匹配数字)- 异常处理避免单个文件操作失败导致整个脚本终止
Windows任务计划程序配置步骤
- 打开「任务计划程序」,点击右侧「创建任务」
- 常规选项卡:
- 输入任务名称(如「ABC文件自动迁移」)
- 勾选「不管用户是否登录都要运行」(后台执行需求)
- 勾选「使用最高权限运行」(避免权限不足导致文件操作失败)
- 触发器选项卡:
- 点击「新建」,设置触发条件(如每天固定时间、登录时、文件夹变化时等)
- 操作选项卡:
- 点击「新建」,操作选择「启动程序」
- 程序或脚本:填写Python解释器的绝对路径,比如
C:\Python310\python.exe(根据本地Python安装路径调整) - 添加参数(可选):填写脚本的绝对路径,比如
"F:\Z\file_transfer.py"(用引号包裹路径,避免空格问题) - 起始于(可选):可留空,也可填写脚本所在目录
F:\Z,不影响执行(脚本全程用绝对路径)
- 设置选项卡:
- 按需勾选「任务运行超时停止」「失败重试」等规则
- 点击「确定」完成配置,右键任务选择「运行」测试执行效果
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

