You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何读取指定目录下所有文件的每一行内容?

问题原因

你第二段代码没有输出是因为f.readlines()仅会将文件内容读取为列表返回,你没有将该返回值传入print()方法,内容仅被加载到内存但没有输出到终端。另外直接使用open()后未主动关闭文件,存在文件句柄泄漏的风险。

正确实现方案

方案1:使用标准上下文管理器读取(兼容传统写法)

from pathlib import Path 

p = Path('tmp')
for file in p.iterdir():
    # 过滤子目录,仅处理文件
    if file.is_file():
        print(f"--- {file.name} 内容 ---")
        # 用with上下文管理器自动处理文件关闭
        with open(file, 'r', encoding='utf-8') as f:
            # 读取内容后打印
            content = f.read()
            print(content)

方案2:使用Path原生方法(更简洁的pathlib写法)

Path对象自带read_text()方法,无需手动处理文件打开关闭逻辑:

from pathlib import Path 

p = Path('tmp')
for file in p.iterdir():
    if file.is_file():
        print(f"--- {file.name} 内容 ---")
        print(file.read_text(encoding='utf-8'))

注意事项

  • 增加is_file()判断可以避免尝试打开目录时抛出异常
  • 显式指定encoding='utf-8'可以避免不同操作系统默认编码不一致导致的乱码问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:45:04