以下是一个使用Python编写的解决方法,用于比较两个目录中不同扩展名的文件名,并删除不在两个目录中的文件。
import os
def compare_directories(dir1, dir2):
# 获取两个目录中的所有文件名
files_dir1 = get_files_in_directory(dir1)
files_dir2 = get_files_in_directory(dir2)
# 获取两个目录中不同扩展名的文件名
different_files = get_different_files(files_dir1, files_dir2)
# 删除不在两个目录中的文件
delete_files_not_in_both_directories(dir1, dir2, different_files)
def get_files_in_directory(directory):
files = []
for filename in os.listdir(directory):
if os.path.isfile(os.path.join(directory, filename)):
files.append(filename)
return files
def get_different_files(files1, files2):
different_files = []
for file1 in files1:
extension1 = os.path.splitext(file1)[1]
for file2 in files2:
extension2 = os.path.splitext(file2)[1]
if extension1 != extension2:
different_files.append(file1)
break
return different_files
def delete_files_not_in_both_directories(dir1, dir2, files):
for file in files:
file_path1 = os.path.join(dir1, file)
file_path2 = os.path.join(dir2, file)
if os.path.isfile(file_path1):
os.remove(file_path1)
if os.path.isfile(file_path2):
os.remove(file_path2)
# 使用示例
directory1 = "/path/to/directory1"
directory2 = "/path/to/directory2"
compare_directories(directory1, directory2)
请注意,此代码删除了在两个目录中都存在的文件,但扩展名不同。如果您只想删除不在两个目录中的文件,请将delete_files_not_in_both_directories
函数修改为仅删除不在两个目录中的文件。
上一篇:比较两个目录的C#代码
下一篇:比较两个目录中的文件名