1、复制存在于source_dir但不存在于target_dir的文件:
import os
import shutil
source_dir = "./all"
target_dir = "./bad"
destination_dir = "./good"
source_files = os.listdir(source_dir)
target_files = os.listdir(target_dir)
files_to_copy = [file for file in source_files if file not in target_files]
for file_name in files_to_copy:
source_file_path = os.path.join(source_dir, file_name)
destination_file_path = os.path.join(destination_dir, file_name)
shutil.copyfile(source_file_path, destination_file_path)
2、查找相同文件名的数量:
import os
dir1 = "./all"
dir2 = "./bad"
files1 = os.listdir(dir1)
files2 = os.listdir(dir2)
common_files = set(files1) & set(files2)
print(f"共有 {len(common_files)} 个文件名相同。")
3、复制csv中的指定文件:
import os
import shutil
def read_csv(file_path):
check_numbers = []
with open(file_path, 'r') as f:
for line in f:
check_numbers.append(line.strip())
return check_numbers
def copy_mp4_files(src_folder, dst_folder, check_numbers):
if not os.path.exists(dst_folder):
os.makedirs(dst_folder)
for root, dirs, files in os.walk(src_folder):
for file in files:
if file.endswith('.mp4'):
for check_number in check_numbers:
if file.startswith(check_number):
dst_file = os.path.join(dst_folder, file)
if not os.path.exists(dst_file):
shutil.copy(os.path.join(root, file), dst_file)
break
csv_file = './1.csv'
src_folder = './video'
dst_folder = './demo'
check_numbers = read_csv(csv_file)
copy_mp4_files(src_folder, dst_folder, check_numbers)