繁体   English   中英

python某些目录中文本文件的数量

[英]python count number of text file in certain directory

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

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

计算Python中具有特定扩展名的文件数开始

解决方案1。

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

解决方案2。

fileCounter = len(glob.glob1("data/accounts/","*.txt"))

这里阅读有关glob的信息

假设您的文本文件以“ .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()确定文本文件大小。

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

它将允许您使用通配符,以便仅捕获您感兴趣的文件。

from glob import glob
filenames = glob("data/accounts/*.txt")
number_of_files = len(filenames)
print(number_of_files)
number_of_files = sum(f.endswith('.txt') for f in os.listdir("data/accounts/"))

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM