python count某个目录中的文本文件数

时间:2018-06-08 03:18:33

标签: python

我正在尝试获取某个目录中的文件数,但我希望它只计算文本文件,因为我在帐户和DS中有另一个目录。存储文件。我应该修改什么才能获得文本文件的数量?

list = os.listdir("data/accounts/")
number_files = len(list)
print(number_files)

4 个答案:

答案 0 :(得分:2)

来自Count number of files with certain extension in Python

解决方案1。

prize

解决方案2。

fileCounter = 0
for root, dirs, files in os.walk("data/accounts/"):
    for file in files:    
        if file.endswith('.txt'):
            fileCounter += 1

在这里阅读glob here

答案 1 :(得分:1)

假设您的文本文件以" .txt"结尾,您可以使用以下内容:

files = [x for x in os.listdir("data/accounts/") if (os.isfile(x) and x.endswith('.txt'))]
number_files = len(list)
print(number_files)

使用os.isfile()忽略目录,使用string.endswith()确定文本文件。

答案 2 :(得分:0)

可能适合您的替代模块是glob

它允许您使用通配符,因此您只能捕获您感兴趣的文件。

decoded

答案 3 :(得分:0)

number_of_files = sum(f.endswith('.txt') for f in os.listdir("data/accounts/"))

str.endswith()返回TrueFalse
TrueFalse的数值分别为1和0 sum()将使用生成器表达式。