2013-03-04 72 views
1

我有了以下文件的文件夾/image/1.jpg, 2.jpg, 5.jpg如何比較列表和目錄以檢查丟失的文件?

和一個列表:

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

如何比較列表和目錄的內容,找出3.jpg4.jpg文件丟失?

我在網上搜索,但我找到的唯一解決方案顯示如何比較列表到列表或目錄目錄。

+2

那你試試? – 2013-03-04 06:27:58

+0

索引,枚舉文件(os.listdir(../ image /)):if file!= img [index]: 然後我得到列表索引超出範圍。所有文件的結果都丟失了。 – Vogelsire 2013-03-04 06:48:08

回答

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] 
+0

謝謝,我發現我正確的丟失文件〜 – Vogelsire 2013-03-04 07:11:08

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

這個怎麼樣。

首先獲得所有文件的擴展名從文件

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

,然後比較這兩個列表等。

​​