1、文件夹下无目录文件夹(纯文件)
import os
def scanfile(path):
# 获取图片路径(列表格式)
filelist = os.listdir(path)
for filepath, dirs, files in os.walk(path):
keep = []
for file in files:
fileInfo = os.path.splitext(file)
if fileInfo[1] == '.xml' or fileInfo[1] == '.json':
img_types = ['.jpg', '.jpeg', '.png', '.bmp']
# 判断xml与图片是否存在
for img_type in img_types:
if (fileInfo[0] + img_type) in files:
img_name = fileInfo[0] + img_type
if img_name in filelist:
keep.append(file)
keep.append(img_name)
# 删除xml与图片不对应的其他文件
for file in files:
if file not in keep:
del_file = filepath + '\\' + file
os.remove(del_file)
print('删除文件', file)
if __name__ == '__main__':
paths = input("请输入文件路径:")
2、遍布文件夹下所有的文件与文件夹(包含子文件)
import os
def scanfile(path):
# 获取图片路径(列表格式)
filelist = os.listdir(path)
for filename in filelist:
filepath = os.path.join(path, filename)
# 循环目录下所有文件夹下子文件
if os.path.isdir(filepath):
scanfile(filepath)
for filepath, dirs, files in os.walk(path):
keep = []
for file in files:
fileInfo = os.path.splitext(file)
if fileInfo[1] == '.xml' or fileInfo[1] == '.json':
img_types = ['.jpg', '.jpeg', '.png', '.bmp']
# 判断xml与图片是否存在
for img_type in img_types:
if (fileInfo[0] + img_type) in files:
img_name = fileInfo[0] + img_type
if img_name in filelist:
keep.append(file)
keep.append(img_name)
# 删除xml与图片不对应的其他文件
for file in files:
if file not in keep:
del_file = filepath + '\\' + file
os.remove(del_file)
print('删除文件', file)
if __name__ == '__main__':
paths = input("请输入文件路径:")
scanfile(paths)
输出结果: