Python修改文件路径的核心方法是使用os
模块的rename()
或replace()
函数,以及shutil
模块的move()
函数。这些方法可以高效完成文件或文件夹的路径修改,支持跨磁盘操作,同时需注意路径格式的兼容性(如Windows反斜杠需转义)。以下是具体实现方式和注意事项:
-
os.rename()
基础用法
直接修改文件或文件夹路径,但要求目标路径必须存在父目录。示例代码:pythonCopy Code
import os os.rename('old_path/file.txt', 'new_path/file.txt') # 单文件操作
若目标路径跨磁盘或父目录不存在,会抛出
FileNotFoundError
。 -
os.replace()
的覆盖特性
与rename()
功能类似,但若目标路径已存在文件,会自动覆盖且不提示:pythonCopy Code
os.replace('old_file.txt', 'existing_file.txt') # 强制替换目标文件
-
shutil.move()
的智能处理
适用于跨磁盘移动或自动创建父目录的场景,兼容性更强:pythonCopy Code
import shutil shutil.move('D:/data/old.txt', 'E:/backup/new.txt') # 跨磁盘移动
-
路径格式的注意事项
- Windows路径建议使用原始字符串(如
r'C:\folder'
)或双反斜杠 - 使用
os.path.join()
拼接路径可避免系统差异:pythonCopy Code
new_path = os.path.join('folder', 'subfolder', 'file.txt')
- Windows路径建议使用原始字符串(如
-
批量修改路径的技巧
结合os.listdir()
和循环可实现批量重命名:pythonCopy Code
for filename in os.listdir('old_folder'): if filename.endswith('.csv'): os.rename(f'old_folder/{filename}', f'new_folder/{filename}')
提示:操作前建议用os.path.exists()
检查路径有效性,关键操作可添加try-except
捕获异常。对于网络路径或权限受限的场景,需额外处理权限问题。