You need to enable JavaScript to run this app. Python获取目录下文件创建日期、大小结果异常的排查与实现
优惠活动
大模型
产品
解决方案
定价
更多

Python获取目录下文件创建日期、大小结果异常的排查与实现

脚本存在的核心问题
  • 输出所有文件属性完全一致的根因:循环启动前,代码固定使用目录自身的路径/users/sarah/documents调用os.stat获取属性,拿到的是目录本身的创建时间、目录元数据的占用大小,这两个值被存为固定常量,循环打印时没有针对每个文件单独查询对应属性,自然所有输出的属性都和目录属性完全相同。
  • 路径不完整隐患:os.listdir仅返回目录下的文件名列表,没有和父目录路径拼接成完整的可访问路径,就算把属性查询逻辑移到循环内,直接传入文件名做参数,也会因为相对路径不匹配无法定位到目标文件。
  • 待补齐的功能与细节问题:
    • os.stat返回的st_ctime是Unix时间戳浮点值,直接输出没有可读性,需要转换为标准日期格式。
    • 未实现文件信息导出到文本文件的逻辑,导出时需要指定UTF-8编码避免中文文件名乱码。
    • 未实现按文件大小阈值过滤的筛选逻辑。
修正后的可运行参考实现
import os
from datetime import datetime

# 可自定义配置项
TARGET_DIR = '/users/sarah/documents'  # 待扫描的目标目录
OUTPUT_FILE = 'file_stat_result.txt'   # 结果导出的文本文件路径
MIN_FILE_SIZE = 0  # 大小筛选阈值,单位字节,0代表不做大小筛选,修改为对应值即可过滤
                   # 例:设置为1024*10 则仅导出大小大于10KB的文件

if __name__ == '__main__':
    # 校验目标目录是否存在
    if not os.path.isdir(TARGET_DIR):
        print(f"目标目录不存在:{TARGET_DIR}")
        exit()

    export_content = []
    # 遍历目录下所有条目
    for file_name in os.listdir(TARGET_DIR):
        # 拼接成系统兼容的完整文件路径
        full_file_path = os.path.join(TARGET_DIR, file_name)
        # 跳过目录下的子文件夹,仅统计普通文件
        if not os.path.isfile(full_file_path):
            continue

        # 针对当前遍历的单个文件查询真实属性
        file_stat = os.stat(full_file_path)
        current_file_size = file_stat.st_size
        # 按设定的大小阈值过滤
        if current_file_size < MIN_FILE_SIZE:
            continue

        # 转换时间戳为可读的创建日期格式
        create_date = datetime.fromtimestamp(file_stat.st_ctime).strftime('%Y-%m-%d %H:%M:%S')
        # 拼接单条结果
        result_line = f"文件名:{file_name} | 创建日期:{create_date} | 文件大小:{current_file_size} bytes"
        print(result_line)
        export_content.append(result_line)

    # 将结果写入文本文件,指定UTF-8编码避免中文乱码
    with open(OUTPUT_FILE, 'w', encoding='utf-8') as f:
        f.write('\n'.join(export_content))
    print(f"\n统计结果已导出至:{os.path.abspath(OUTPUT_FILE)}")

内容的提问来源于stack exchange,提问作者Sarah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.01 00:15:04