2

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

和一个清单:

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

如何比较列表和目录内容以找出丢失的文件3.jpg4.jpg

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

4

3 回答 3

3

要搜索目录中的文件,您可以使用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]
于 2013-03-04T06:33:25.340 回答
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
于 2013-03-04T06:29:04.817 回答
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]
于 2013-03-04T06:31:49.123 回答