Python对比父文件夹与子文件夹:查找仅存于父文件夹的HTML文件
问题:找出仅存在于父文件夹中的HTML文件
我在文件夹A(C:\Folder-Oana\extracted)中有1880个HTML文件,其子文件夹B(C:\Folder-Oana\extracted\translated)中仅有50个HTML文件。我需要找出仅存在于文件夹A中的所有HTML文件(即1880-50个差异文件),但编写的两段Python代码均未得到正确结果,错误输出显示无差异。
第一段代码及问题
import os folder1 = r"C:\Folder-Oana\extracted" folder2 = r"C:\Folder-Oana\extracted\translated" # 获取每个文件夹中的HTML文件列表 html_files_folder1 = [f.lower() for f in os.listdir(folder1) if f.lower().endswith('.html')] html_files_folder2 = [f.lower() for f in os.listdir(folder2) if f.lower().endswith('.html')] # 找出两个文件列表的差异 missing_files = list(set(html_files_folder1) - set(html_files_folder2)) # 显示缺失的文件 if missing_files: print("The HTML files found in folder 1 but not in folder 2 are:") for filename in missing_files: print(filename) else: print("There are no HTML files found in folder 1 but not in folder 2.")
错误输出:There are no HTML files found in folder 1 but not in folder 2.
示例场景
文件夹A(c:\Folder-Oana\extracted)内容:
c:\Folder-Oana\extracted\translated\ <DIR> 01/05/2024 13:36 ---- c:\Folder-Oana\extracted\2.html c:\Folder-Oana\extracted\3.html c:\Folder-Oana\extracted\4.html c:\Folder-Oana\extracted\5.html c:\Folder-Oana\extracted\11.html c:\Folder-Oana\extracted\12.html c:\Folder-Oana\extracted\13.html c:\Folder-Oana\extracted\14.html c:\Folder-Oana\extracted\15.html c:\Folder-Oana\extracted\16.html c:\Folder-Oana\extracted\17.html
文件夹B(c:\Folder-Oana\extracted\translated)内容:
c:\Folder-Oana\extracted\translated\11.html c:\Folder-Oana\extracted\translated\12.html c:\Folder-Oana\extracted\translated\13.html c:\Folder-Oana\extracted\translated\14.html c:\Folder-Oana\extracted\translated\15.html c:\Folder-Oana\extracted\translated\16.html c:\Folder-Oana\extracted\translated\17.html c:\Folder-Oana\extracted\translated\18.html c:\Folder-Oana\extracted\translated\19.html c:\Folder-Oana\extracted\translated\24.html c:\Folder-Oana\extracted\translated\25.html c:\Folder-Oana\extracted\translated\26.html
期望输出:
2.html 3.html 4.html 5.html
第二段代码及问题
import os import filecmp def compare_folders(folder1, folder2): dcmp = filecmp.dircmp(folder1, folder2) diff_files = dcmp.diff_files if diff_files: print(f"The following files are different between {folder1} and {folder2}:") for file in diff_files: print(f" - {file}") else: print(f"No differences found between {folder1} and {folder2}.") if __name__ == "__main__": folder1 = r"C:\Folder-Oana\extracted" folder2 = r"C:\Folder-Oana\extracted\translated" compare_folders(folder1, folder2)
这段代码同样无法正确检测出仅存在于父文件夹中的HTML文件。
内容的提问来源于stack exchange,提问作者user12080214
相关产品推荐
相关产品推荐

