实现将一个父文件夹下的不同子文件夹内的文件全部移动或复制到另一个文件夹下,也就是集中文件。我这里的子文件夹下不仅有svs后缀的文件,还有txt文本文件,而我只想要svs文件全部复制到另外一个文件夹,因此在代码部分加了一个判断是否为svs后缀的判断条件,下面是实现该功能的python脚本:
import os
import shutil
def move_svs_files(src_folder, dest_folder, operation='move'):
if not os.path.exists(src_folder):
print(f"源文件夹 '{src_folder}' 不存在。")
return
if not os.path.exists(dest_folder):
os.makedirs(dest_folder)
print(f"目标文件夹 '{dest_folder}' 不存在,已创建。")
for root, dirs, files in os.walk(src_folder):
for file in files:
if file.endswith('.svs'): # 检查文件后缀是否为 .svs
src_path = os.path.join(root, file)
dest_path = os.path.join(dest_folder, file)
if operation == 'move':
shutil.move(src_path, dest_path)
print(f"移动文件: {src_path} 到 {dest_path}")
elif operation == 'copy':
shutil.copy(src_path, dest_path)
print(f"复制文件: {src_path} 到 {dest_path}")
else:
print("不支持的操作。请选择 'move' 或 'copy'。")
return
if __name__ == "__main__":
source_folder = 'F:/CLAM_DATA/gdc_download20240109'
destination_folder = 'F:/CLAM_DATA/Data1'
operation_type = 'copy'
move_svs_files(source_folder, destination_folder, operation_type)