暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

python实现目录文件的遍历和拷贝

zayki 2024-09-09
270

在Python中,可以使用osshutil模块来实现目录文件的遍历和拷贝。以下是一个简单的示例代码,该代码将遍历指定源目录下的所有文件和子目录,并将它们拷贝到目标目录。

import os import shutil def copy_directory(src, dst): """ 遍历源目录并拷贝所有文件和子目录到目标目录。 :param src: 源目录路径 :param dst: 目标目录路径 """ # 检查源目录是否存在 if not os.path.exists(src): print("源目录不存在") return # 如果目标目录不存在,则创建它 if not os.path.exists(dst): os.makedirs(dst) # 遍历源目录 for item in os.listdir(src): src_path = os.path.join(src, item) dst_path = os.path.join(dst, item) # 判断是文件还是目录 if os.path.isdir(src_path): # 如果是目录,递归调用函数 copy_directory(src_path, dst_path) else: # 如果是文件,直接拷贝 shutil.copy2(src_path, dst_path) print(f"文件{src_path}已拷贝到{dst_path}") # 使用示例 source_directory = 'path/to/source_directory' destination_directory = 'path/to/destination_directory' copy_directory(source_directory, destination_directory)

这段代码定义了一个copy_directory函数,它接受源目录和目标目录作为参数。它会检查源目录是否存在,然后创建目标目录(如果它不存在的话)。之后,它将遍历源目录中的每个条目,并递归地拷贝任何子目录,或者直接拷贝文件。
在使用这个脚本之前,请确保将source_directorydestination_directory变量的值替换为你想要拷贝的源目录和目标目录的实际路径。
请注意,该脚本会保留文件的元数据(如最后修改时间),这是通过使用shutil.copy2而不是shutil.copy实现的。此外,如果目标目录中已存在与源目录中文件同名的文件,它们将被覆盖。在实际使用中,你可能需要添加额外的逻辑来处理这种情况,例如询问用户是否要覆盖文件或者跳过拷贝操作。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论