Python如何统计某一文件夹下的文件数量

有个文件夹 ‘/tmp’,如何用 Python 统计其下文件数量?
Python如何统计某一文件夹下的文件数量

4 回复

Python 文件操作相关问题: http://www.revotu.com/python-file-operation-related-issues.html

>>> import os
>>> DIR = ‘/tmp’
>>> print len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])

如统计文件夹数量,用 os.path.isdir(path)做判断语句。


import os

def count_files_in_folder(folder_path):
    """
    统计指定文件夹下的文件数量
    
    参数:
        folder_path: 文件夹路径字符串
    
    返回:
        文件数量(整数)
    """
    try:
        # 获取文件夹下所有条目(文件和子文件夹)
        all_items = os.listdir(folder_path)
        
        # 过滤出文件(排除文件夹)
        files = [item for item in all_items 
                if os.path.isfile(os.path.join(folder_path, item))]
        
        return len(files)
        
    except FileNotFoundError:
        print(f"错误:找不到文件夹 '{folder_path}'")
        return 0
    except PermissionError:
        print(f"错误:没有权限访问文件夹 '{folder_path}'")
        return 0

# 使用示例
if __name__ == "__main__":
    # 指定要统计的文件夹路径
    target_folder = "/path/to/your/folder"  # 替换为你的实际路径
    
    file_count = count_files_in_folder(target_folder)
    print(f"文件夹 '{target_folder}' 中共有 {file_count} 个文件")

这个函数的核心是:

  1. os.listdir()获取文件夹所有内容
  2. os.path.isfile()判断每个条目是否为文件
  3. 统计文件数量并返回

如果要包含子文件夹里的文件,可以用os.walk()

def count_all_files(folder_path):
    total = 0
    for root, dirs, files in os.walk(folder_path):
        total += len(files)
    return total

os.listdir统计当前文件夹,用os.walk递归统计所有子文件夹。

用 python 套一个 shell

from pathlib import Path # Py3 自带
dir_path = '.'
print(len(list(Path(dir_path).iterdir()))

回到顶部