列出目录中的所有文件 - 按大小过滤

时间:2015-04-30 08:56:52

标签: python python-2.7

我试图获取大于20kb的所有文件 我尝试了以下但它返回所有文件,即使它们小于20kb:

dir = 'C:\\some\\path'
filter(lambda x:os.path.getsize>20000L, [os.path.join(dir, x) for x in os.listdir(dir)])

3 个答案:

答案 0 :(得分:3)

lambda中的表达式没有使用它的参数。事实上,

lambda x: os.path.getsize > 20000

将函数getsize与整数进行比较。那应该是:

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

答案 1 :(得分: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

答案 2 :(得分:1)

获取大于20000的所有文件

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