如何用Python计算目录中的文件数量
我该怎么做才能只计算一个文件夹里的文件数量?因为现在的计算方式会把这个文件夹本身也算作一个文件:
len(glob.glob('*'))
29 个回答
86
对于所有类型的文件,包括子目录(Python 2):
import os
lst = os.listdir(directory) # your directory path
number_files = len(lst)
print number_files
仅限文件(不包括子目录):
import os
onlyfiles = next(os.walk(directory))[2] #directory is your directory path as string
print len(onlyfiles)
183
当然可以!请看下面的内容:
在编程中,很多时候我们需要让程序做一些重复的事情。为了避免每次都写一模一样的代码,我们可以使用“循环”。循环就像是一个指令,告诉程序重复执行某些操作,直到满足特定条件为止。
比如说,如果你想让程序打印数字1到10,你可以用循环来实现。这样,你只需要写一次打印的指令,程序就会自动帮你重复执行,直到打印完所有的数字。
另外,循环有很多种类型,比如“for循环”和“while循环”。“for循环”通常用来处理已知次数的重复,而“while循环”则是根据某个条件来决定是否继续执行。
总之,循环是编程中非常重要的一个概念,它能让我们的代码更加简洁、高效。
import os
_, _, files = next(os.walk("/usr/lib"))
file_count = len(files)
416
os.listdir()
的效率会比使用 glob.glob
稍微高一些。如果你想检查一个文件名是否是普通文件(而不是文件夹或其他类型的东西),可以用 os.path.isfile()
:
import os, os.path
# simple version for working with CWD
print len([name for name in os.listdir('.') if os.path.isfile(name)])
# path joining version for other paths
DIR = '/tmp'
print len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])