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} 个文件")
这个函数的核心是:
- 用
os.listdir()获取文件夹所有内容 - 用
os.path.isfile()判断每个条目是否为文件 - 统计文件数量并返回
如果要包含子文件夹里的文件,可以用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()))

