Python文件复制并重命名:是否存在更简便的单命令实现方式?
高效实现文件复制并重命名的Python单命令写法
当然有更简洁的写法——直接在shutil.copy2的目标参数里指定包含新文件名的完整路径,一步完成复制+重命名,不用分开执行复制和改名操作。
简化后的代码
import shutil import os source_file = 'path/to/your/source/file.txt' # 直接构造包含新文件名的目标完整路径 destination_file = os.path.join('path/to/your/destination/', 'new_file.txt') # 一步完成复制并重命名 shutil.copy2(source_file, destination_file)
为什么这个写法可行?
shutil.copy2()的第二个参数支持两种形式:
- 如果是目录路径:文件会以原文件名复制到该目录下(这就是你原来代码里的用法)
- 如果是完整文件路径:文件会直接复制到指定路径,同时自动使用路径里的文件名作为新名称,省去后续
os.rename的步骤
这种写法不仅代码更简洁,还减少了一次文件系统操作,效率更高。
额外提示
如果目标目录可能不存在,建议先确保目录存在:
import shutil import os source_file = 'path/to/your/source/file.txt' destination_dir = 'path/to/your/destination/' new_file_name = 'new_file.txt' # 确保目标目录存在,不存在则创建(exist_ok=True避免目录已存在时报错) os.makedirs(destination_dir, exist_ok=True) # 构造完整目标路径并执行复制重命名 destination_file = os.path.join(destination_dir, new_file_name) shutil.copy2(source_file, destination_file)
内容的提问来源于stack exchange,提问作者KansaiRobot
相关产品推荐
相关产品推荐

