import os
import shutil
def get_files_in_directory(directory):
"""
获取目录中的所有文件名
"""
files = []
for root, _, filenames in os.walk(directory): # root_当前根目录 _空列表 filenames_各个文件名
for filename in filenames:
files.append(os.path.join(root, filename))
return files
def main():
# 定义两个文件夹路径
folder1_path = r"F:\data1"
folder2_path = r"F:\data2"
output_folder_path = r"F:\data_3"
# 获取两个文件夹中的文件列表
files_in_folder1 = set(get_files_in_directory(folder1_path))
files_in_folder2 = set(get_files_in_directory(folder2_path))
# 获取交集
intersection = files_in_folder1.intersection(files_in_folder2)
print('this is intersectionlen',intersection)
print('this is intersectionlen',len(intersection))
# 从每个文件夹的文件列表中去除交集
files_in_folder1 = files_in_folder1 - intersection
files_in_folder2 = files_in_folder2 - intersection
# 获取并集
union = files_in_folder1.union(files_in_folder2)
# 创建输出文件夹(如果不存在)
if not os.path.exists(output_folder_path):
os.makedirs(output_folder_path)
# 将并集中的文件复制到输出文件夹中
for file_path in union:
file_name = os.path.basename(file_path)
shutil.copy(file_path, os.path.join(output_folder_path, file_name))
print("Union of Files has been written to", output_folder_path)
if __name__ == "__main__":
main()
两个文件去交集后取并集
最新推荐文章于 2024-07-12 16:26:30 发布