Python:比较两个不同结构的目录并列出新文件

Python:比较两个不同结构的目录并列出新文件,python,file,filecompare,Python,File,Filecompare,我有一个脚本,可以将文件从一个文件夹结构复制到另一个具有不同结构的文件夹 ex. Folder 1 c.txt d.txt subdir1 a.txt b.txt 脚本以这种格式将文件/目录从文件夹1复制到文件夹2(文件夹2具有不同的结构) Folder 2 subdir2 c.txt d.txt subdir1 a.txt b.txt 在文件夹2中,我可以创建自己的文件,如new1.txt、

我有一个脚本,可以将文件从一个文件夹结构复制到另一个具有不同结构的文件夹

ex. Folder 1
    c.txt
    d.txt
    subdir1
      a.txt
      b.txt
脚本以这种格式将文件/目录从文件夹1复制到文件夹2(文件夹2具有不同的结构)

Folder 2
   subdir2
     c.txt
     d.txt
   subdir1
     a.txt
     b.txt
在文件夹2中,我可以创建自己的文件,如new1.txt、new2.txt。创建新文件后,文件夹2的结构如下:

Folder 2
   new1.txt
   new2.txt
   subdir2
     c.txt
     d.txt
   subdir1
     a.txt
     b.txt
现在我需要比较Folder1和Folder2的目录内容。我使用filecmp.dircmp来比较目录内容。这些上的filecmp.dircmp 两个文件夹将为我提供subdir2、subdir2/c.txt、subdir2/d.txt作为新目录,以及带有new1.txt和new2.txt的新文件。 但实际上我只创建了new1.txt和new2.txt作为新文件,其他文件只从一个文件夹复制到另一个文件夹


作为一个新文件,我只需要结果中的new1.txt和new2.txt。你知道我该怎么做吗。我正在用python编写此代码

Tim是对的,
os.walk
是解决方案:

>>> path = r'D:\DATA\FP12210\My Documents\Temp\Python'
>>> import os
>>> files1 = []
>>> for root, dirs, files in os.walk(os.path.join(path, 'Folder 1')):
    files1.extend(files)


>>> files1
['c.txt', 'd.txt', 'a.txt', 'b.txt']
>>> files2 = []
>>> for root, dirs, files in os.walk(os.path.join(path, 'Folder 2')):
    files2.extend(files)


>>> files2
['new1.txt', 'new2.txt', 'a.txt', 'b.txt', 'c.txt', 'd.txt']
然后您可以区分您的输出:

>>> print [f for f in files2 if f not in files1]
['new1.txt', 'new2.txt']

所以本质上你想完全忽略子文件夹结构,只是比较文件名?在不同的目录中是否会有重复的文件名?然后呢?你看过这些文件有多久了?