<p>我需要比较A和B两个目录的文件名</p>
<p>A包含的文件比B多(分别约15000/20000),具有相同的名称/不同的内容。在</p>
<p>我有:</p>
<p><strong>迪拉:</strong><code>'doctor_Weiss.csv', 'doctor_Urlici.csv', 'doctor_Basler J. Rudolph.csv'</code></p>
<p><strong>目录:</strong><code>'doctor_Weiss.csv', 'doctor_Urlici.csv'</code></p>
<p>我需要dirA dirB中的所有文件(来自dirA):</p>
<p><strong>diffAB:</strong><code>'doctor_Basler J. Rudolph.csv'</code></p>
<p>我试过了:</p>
<pre><code>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)
</code></pre>
<p>没用。”a'包含来自B的所有文件,而不仅仅是a-B</p>
<p>我还试图遍历两个目录并创建一组文件,但都没有成功(同样,所有的文件都来自B)。在</p>
<p>谢谢你的帮助</p>
<p>你可以用set来获取文件的差异。在</p>
<pre><code>import os
from os.path import isfile
list_A = [x for x in os.listdir(dirA) if isfile(x)]
list_B = [x for x in os.listdir(dirB) if isfile(x)]
diff = set(list_A) - set(list_B)
</code></pre>