我試圖獲取大於20kb的所有文件。
我嘗試以下,但它返回的所有文件,即使他們是小然後20KB:列出一個目錄中的所有文件 - 按大小篩選
dir = 'C:\\some\\path'
filter(lambda x:os.path.getsize>20000L, [os.path.join(dir, x) for x in os.listdir(dir)])
我試圖獲取大於20kb的所有文件。
我嘗試以下,但它返回的所有文件,即使他們是小然後20KB:列出一個目錄中的所有文件 - 按大小篩選
dir = 'C:\\some\\path'
filter(lambda x:os.path.getsize>20000L, [os.path.join(dir, x) for x in os.listdir(dir)])
拉姆達內的表達沒有使用它的參數。實際上,
lambda x: os.path.getsize > 20000
將函數getsize
與一個整數進行比較。這應該是:
lambda x: os.path.getsize(x) > 20000
要打印大於20KB更大的文件:
import glob
import os
for fyle in glob.glob('*'):
if os.stat(fyle).st_size > 20000:
print fyle, os.stat(fyle).st_size
謝謝..沒有注意到這一點。那20000L和20000之間有什麼區別? – Shoham
文字中的後綴'L'使其成爲[長整數](https://docs.python.org/2/library/stdtypes.html#numeric-types-int-float-long-complex)。長整數沒有大小限制,但與'20000'等數字無關。 – bereal