Coding-python-删除两个文件夹中文件名不匹配的文件

代码

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
import os

# 文件夹路径
folder_a = 'train\\images'
folder_b = 'train\\labels'

# 创建两个集合,分别存储去掉扩展名后的文件名
names_in_a = set()
names_in_b = set()

# 读取文件夹a中的文件名
for filename in os.listdir(folder_a):
base_name = os.path.splitext(filename)[0]
names_in_a.add(base_name)

# 读取文件夹b中的文件名
for filename in os.listdir(folder_b):
base_name = os.path.splitext(filename)[0]
names_in_b.add(base_name)

# 找出只存在于文件夹a中,但在文件夹b中不存在的文件名
files_to_delete = names_in_a - names_in_b

# 删除文件夹a中没有匹配的文件
for base_name in files_to_delete:
for filename in os.listdir(folder_a):
if os.path.splitext(filename)[0] == base_name:
file_path = os.path.join(folder_a, filename)
print(f"Deleting: {file_path}")
os.remove(file_path)