【发布时间】:2015-05-21 13:13:39
【问题描述】:
我需要比较两个目录A和B的文件名。
A 包含的文件比 B 多(分别约为 15000/20000),具有相同名称/不同内容。
我有:
目录: 'doctor_Weiss.csv', 'doctor_Urlici.csv', 'doctor_Basler J. Rudolph.csv'
目录: 'doctor_Weiss.csv', 'doctor_Urlici.csv'
我需要 dirA-dirB 中的所有文件(来自 dirA):
diffAB: 'doctor_Basler J. Rudolph.csv'
我试过了:
import os
from os.path import join
fpA = {}
for root, dirs, files in os.walk('C:\A\docs'):
for name in files:
fpA[name] = 1
fpB = {}
for root, dirs, files in os.walk('C:\B\docs'):
for name in files:
fpB[name] = 1
a = []
for name in fpA.keys():
if not(name in fpB.keys()):
a.append(name)
没用。 'a' 包含来自 B 的所有文件,而不仅仅是 A-B。
我还尝试遍历两个目录并创建文件集,但也没有工作(同样是 B 中的所有文件)。
感谢您的帮助
【问题讨论】:
-
在最后一个 for 循环中,您编写了
fpa.keys()而不是fpA.keys()和fpb.keys()而不是fpB.keys()。这只是一个错字吗? -
谢谢,你是对的。刚刚编辑了我的帖子
-
我认为您不应该在此处编辑问题。。稍后引用它的用户会感到困惑。
-
对不起,我认为这很有帮助
-
当然..没问题
标签: python directory compare filenames