批量删除重复文件
需求描述
在网上下载了一个红警地图包,解压后发现有很多是和默认的地图重复的,那么应该如何使用 Python 批量删除重复地图呢?
实现方法
- 安装并配置 Python 环境,这里不多做叙述。
- 新建一个 Python 文件,文件名称可随意命名,如:
cadp.py
- 在新建的文件中添加以下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31import os
import shutil
def compare_and_delete_duplicates(dir1, dir2):
# 获取第一个文件夹中的所有文件和子文件夹
files_and_dirs_in_dir1 = set(os.listdir(dir1))
# 获取第二个文件夹中的所有文件和子文件夹
files_and_dirs_in_dir2 = os.listdir(dir2)
# 遍历第二个文件夹中的内容
for item in files_and_dirs_in_dir2:
item_path = os.path.join(dir2, item)
# 如果该项在第一个文件夹中存在,则删除
if item in files_and_dirs_in_dir1:
if os.path.isfile(item_path) or os.path.islink(item_path):
os.remove(item_path)
elif os.path.isdir(item_path):
shutil.rmtree(item_path)
print(f"Deleted: {item_path}")
else:
print(f"Kept: {item_path}")
# 定义两个文件夹的路径
dir1 = r"F:\\Game\\Yuri's Revenge\\Maps\\MadHQ"
dir2 = r"F:\\Game\\Yuri's Revenge\\Maps\\Custom"
# 调用函数进行比较和删除操作
compare_and_delete_duplicates(dir1, dir2) - 在终端运行以上命令即可!