我有一个/image/
包含以下文件的文件夹:
1.jpg, 2.jpg, 5.jpg
和一个清单:
img = [1.jpg, 2.jpg, 3.jpg, 4.jpg, 5.jpg]
如何比较列表和目录内容以找出丢失的文件3.jpg
?4.jpg
我在网上搜索,但我发现的唯一解决方案显示如何比较列表到列表或目录到目录。
我有一个/image/
包含以下文件的文件夹:
1.jpg, 2.jpg, 5.jpg
和一个清单:
img = [1.jpg, 2.jpg, 3.jpg, 4.jpg, 5.jpg]
如何比较列表和目录内容以找出丢失的文件3.jpg
?4.jpg
我在网上搜索,但我发现的唯一解决方案显示如何比较列表到列表或目录到目录。
要搜索目录中的文件,您可以使用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]
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
那这个呢 。
首先从文件中获取所有文件扩展名
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]