如何比较列表和目录以检查丢失的文件?

时间:2013-03-04 06:25:06

标签: python

我有一个文件夹/image/,其中包含以下文件: 1.jpg, 2.jpg, 5.jpg

列表:

img = [1.jpg, 2.jpg, 3.jpg, 4.jpg, 5.jpg]

如何比较列表和目录内容以找出缺少3.jpg4.jpg个文件?

我在线搜索,但我发现的唯一解决方案显示了如何比较列表到列表或目录到目录。

3 个答案:

答案 0 :(得分:2)

import os
path= r"C:\yourdirectory"  
fileList = os.listdir(path)

img = [...]
missing = [name for name in img if name not in fileList]

如果订单不重要,您可以使用套装

import os
path= r"C:\yourdirectory"  
fileSet = set(os.listdir(path))

img = [...]
missing = set(img)-fileSet

答案 1 :(得分:2)

要搜索目录中的文件,您可以使用glob,如下所示:

import glob

dir_to_search = '/some/path/to/images/'

files_in_dir = glob.glob("{}{}".format(dir_to_search,'*.jpg'))

list_of_files = ['1.jpg','2.jpg','3.jpg']

missing_files = [x for x in list_of_files if x not in files_in_dir]

答案 2 :(得分:1)

这是怎么回事。

首先从文件中获取所有文件扩展名

import os
createlist = []
for r,d,f in os.walk("/images"):
    for files in f:
        if files.endswith(".jpg"):
             createlist.append[files]

然后比较两个列表。

print [(i,j) for i,j in zip(img,createlist) if i!=j]