You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 00:51:22