如何只计算目录中的文件?这将目录本身计算为一个文件:

len(glob.glob('*'))

当前回答

简单的一个:

import os
number_of_files = len(os.listdir(directory))
print(number_of_files)

其他回答

如果你想计算目录中的所有文件——包括子目录中的文件,最python的方法是:

import os

file_count = sum(len(files) for _, _, files in os.walk(r'C:\Dropbox'))
print(file_count)

我们使用sum,它比显式地添加文件计数(等待时间)更快。

我想扩展@Mr_and_Mrs_D的回复:

import os
folder = 'C:/Dropbox'
file_count = sum(len(files) for _, _, files in os.walk(folder))
print(file_count)

这将计算文件夹及其子文件夹中的所有文件。然而,如果你想做一些过滤——比如只计算以.svg结尾的文件,你可以这样做:

import os
file_count = sum(len([f for f in files if f.endswith('.svg')]) for _, _, files in os.walk(folder))
print(file_count)

你基本上可以替换:

len(档案)

:

Len ([f for f in files if f.endswith('.svg')])

def directory(path,extension):
  list_dir = []
  list_dir = os.listdir(path)
  count = 0
  for file in list_dir:
    if file.endswith(extension): # eg: '.txt'
      count += 1
  return count

我解决了这个问题,同时通过谷歌Colab计算谷歌驱动器目录中的文件数量,通过将自己定向到目录文件夹by

import os                                                                                                
%cd /content/drive/My Drive/  
print(len([x for x in os.listdir('folder_name/']))  

普通用户可以尝试

 import os                                                                                                     
 cd Desktop/Maheep/                                                     
 print(len([x for x in os.listdir('folder_name/']))  

如果您将使用操作系统的标准shell,则可以比使用纯python方式更快地获得结果。

Windows示例:

import os
import subprocess

def get_num_files(path):
    cmd = 'DIR \"%s\" /A-D /B /S | FIND /C /V ""' % path
    return int(subprocess.check_output(cmd, shell=True))