前言
- 本文是个人使用Python处理文件的电子笔记,由于水平有限,难免出现错漏,敬请批评改正。
(https://blog.youkuaiyun.com/friendshiptang/category_11653584.html)专栏或我的个人主页查看- YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制
- YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层
- YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
- YOLOv7训练自己的数据集(口罩检测)
- YOLOv8训练自己的数据集(足球检测)
前提条件
- 熟悉Python
相关介绍
- Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
- Python OS模块是负责程序与操作系统的交互,提供了访问操作系统底层的接口和非常丰富的方法用来处理文件和目录。
实验环境
- Python 3.x (面向对象的高级语言)
Python复制目录及其子目录下的所有文件到指定新目录并重命名

代码实现
import os
import shutil
def copy_file(filename_path, target_path):
# 复制文件到新文件夹
shutil.copy(filename_path, target_path)
# 重命名文件
new_file_name_list = filename_path.split('\\')
new_file_name = '_'.join(new_file_name_list)
# print(new_file_name)
os.rename(target_path + '/' + new_file_name_list[-1], target_path + '/' + new_file_name)
def print_dir(filepath):
for i in os.listdir(filepath):
path = (os.path.join(filepath, i))
if os.path.isdir(path): # isdir()判断是否是目录
print_dir(path) # 如果是目录,使用递归方法
if os.path.isfile(path):
copy_file(path,target_path)
if __name__=="__main__":
global target_path # 全局变量
target_path = "rename_copy_output_dir"
if not os.path.exists(target_path):
os.mkdir(target_path)
filepath = "first_dir"
print_dir(filepath)
输出结果

该文介绍了如何使用Python的shutil和os模块来复制目录及其子目录中的所有文件,并在目标目录中对这些文件进行重命名。通过一个递归函数print_dir实现了目录遍历,shutil.copy用于复制文件,os.rename用于重命名文件。
2万+

被折叠的 条评论
为什么被折叠?



