shutil.copy2
是 Python 标准库中的一个函数,用于复制文件,同时尽可能地保留文件的元数据(如时间戳)。如果你在使用 shutil.copy2
时发现它只复制了一个文件然后停止,而不是从循环中复制整个文件集,这通常是因为循环逻辑出现了问题。
shutil.copy2(src, dst)
函数接受两个参数:
src
:源文件的路径。dst
:目标文件的路径,可以是单个文件名或目录。当你需要复制一个或多个文件,并且希望保留文件的元数据时,可以使用 shutil.copy2
。
dst
是一个目录,确保目录存在,否则复制会失败。下面是一个简单的示例,展示如何使用 shutil.copy2
在循环中复制多个文件:
import shutil
import os
# 假设我们有一个源文件列表
source_files = ['file1.txt', 'file2.txt', 'file3.txt']
# 目标目录
destination_dir = 'destination_folder'
# 确保目标目录存在
if not os.path.exists(destination_dir):
os.makedirs(destination_dir)
# 循环复制每个文件
for file_name in source_files:
src_file_path = os.path.join('source_folder', file_name)
dst_file_path = os.path.join(destination_dir, file_name)
try:
shutil.copy2(src_file_path, dst_file_path)
print(f'Copied {src_file_path} to {dst_file_path}')
except Exception as e:
print(f'Failed to copy {src_file_path}: {e}')
确保你的循环逻辑正确无误,并且在复制过程中处理可能出现的异常。这样,你就可以避免 shutil.copy2
在复制一个文件后停止的问题。
领取专属 10元无门槛券
手把手带您无忧上云