使用python

时间:2015-07-21 09:41:05

标签: python

我有两个文件夹“Old_2014”和“New_2015”两个文件夹都有文件,如

Old_2014=abl_results 
         abc_results1
New_2015=abl_results
         abcd_results1

old_2014 / abl_results->有21件商品 new_2014 / abl_results->有165件

我想比较这些文件并复制新文件夹中的唯一记录 同样我有103个文件名称abc,abcd,abcde等。 例如: - 我需要找到旧文件中的文件,而不是新文件中的文件 最后,结果文件需要具有唯一值

1 个答案:

答案 0 :(得分:1)

这是执行您要求的代码:

import os

old_dir = "old_d"
new_dir = "new_d"

files_old = os.listdir(old_dir)
files_new = os.listdir(new_dir)

print "In old not in new:", list(set(files_old) - set(files_new))

具体来说:它列出旧版中不属于新文件的文件。

~ mgregory$ mkdir old_d
~ mgregory$ mkdir new_d
~ mgregory$ touch old_d/1.txt
~ mgregory$ touch old_d/2.txt
~ mgregory$ touch new_d/1.txt
~ mgregory$ python foo.py
In old not in new: ['2.txt']
~ mgregory$ 

注意事项:

  • 您可以使用listdir()
  • 将列表中的文件列表作为列表获取
  • 您可以通过将列表转换为集合
  • 来对列表执行有趣的集合操作
  • 如果你想知道新旧的东西,你应该查找the doco on sets

另一个注意事项:enrico的答案也是正确的:

~ mgregory$ diff old_d new_d
Only in old_d: 2.txt
~ mgregory$ 

diff在扩展目录方面做得很好。