2015-04-30 69 views

回答

3

拉姆達內的表達沒有使用它的參數。實際上,

lambda x: os.path.getsize > 20000 

將函數getsize與一個整數進行比較。這應該是:

lambda x: os.path.getsize(x) > 20000 
+0

謝謝..沒有注意到這一點。那20000L和20000之間有什麼區別? – Shoham

+1

文字中的後綴'L'使其成爲[長整數](https://docs.python.org/2/library/stdtypes.html#numeric-types-int-float-long-complex)。長整數沒有大小限制,但與'20000'等數字無​​關。 – bereal

1

要打印大於20KB更大的文件:

import glob 
import os 

for fyle in glob.glob('*'): 
    if os.stat(fyle).st_size > 20000: 
     print fyle, os.stat(fyle).st_size 
1

要獲得所有文件大於20000個

>>>import os 
>>>dir = 'C:\\some\\path' 
>>>[(path +file) for file in os.listdir(dir) if os.path.getsize(file) > 20000] 
+0

os.listdir將只返回文件名而不是完整路徑。 – Shoham

+0

固定,現在檢查,男人 – Sinux

相關問題