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

如何使用Python查找目录中的.txt文件并写入内容(支持批量写入)

Python: 向指定目录下所有.txt文件写入内容的正确实现

没问题,这个需求完全可以用Python轻松实现!先看看你现有代码里的几个小问题,再给你完整的解决方案:

你的代码存在的问题

  • 你把open(file, "r+")放在了循环外面,这意味着循环结束后只会处理最后一个遍历到的.txt文件,前面的文件都没被写入
  • 使用"r+"模式虽然能读写,但如果只是要覆盖或追加内容,这个模式不是最优选择;而且没有用with语句管理文件,容易导致文件句柄泄露
  • 没有拼接完整的文件路径,直接用file变量打开的话,会在当前工作目录找文件,而不是目标目录下的文件

完整实现方案

下面是几种常见场景的代码,你可以根据需求选择:

1. 覆盖目标目录下所有.txt文件的内容

import os

# 替换成你的目标目录路径
target_directory = "/Users/coder/Desktop/Sample Folder"
# 要写入的文本内容
text_content = "This file is a .txt file"

# 遍历目录下的所有文件
for filename in os.listdir(target_directory):
    # 筛选出.txt文件
    if filename.endswith(".txt"):
        # 拼接完整的文件路径,避免跨平台路径问题
        full_file_path = os.path.join(target_directory, filename)
        # 使用with语句自动管理文件,无需手动关闭
        with open(full_file_path, "w", encoding="utf-8") as file:
            file.write(text_content)
        print(f"已成功写入: {full_file_path}")

2. 向目标目录下所有.txt文件追加内容(保留原有内容)

如果不想覆盖原有内容,只需要把打开模式从"w"改成"a"即可:

import os

target_directory = "/Users/coder/Desktop/Sample Folder"
text_content = "\nThis line is added to the .txt file"  # 加换行符避免和原有内容连在一起

for filename in os.listdir(target_directory):
    if filename.endswith(".txt"):
        full_file_path = os.path.join(target_directory, filename)
        with open(full_file_path, "a", encoding="utf-8") as file:
            file.write(text_content)
        print(f"已成功追加内容到: {full_file_path}")

3. 处理目录及所有子目录中的.txt文件

如果需要递归处理子目录里的txt文件,可以用os.walk:

import os

target_directory = "/Users/coder/Desktop/Sample Folder"
text_content = "This file is a .txt file"

# 递归遍历所有子目录
for root, _, files in os.walk(target_directory):
    for filename in files:
        if filename.endswith(".txt"):
            full_file_path = os.path.join(root, filename)
            with open(full_file_path, "w", encoding="utf-8") as file:
                file.write(text_content)
            print(f"已成功写入: {full_file_path}")

关键知识点说明

  • os.path.join():自动处理不同操作系统的路径分隔符(Windows用\,macOS/Linux用/),避免手动拼接路径出错
  • with语句:Python处理文件的最佳实践,代码块结束后会自动关闭文件,即使写入过程中出现异常也能保证文件安全关闭
  • 文件打开模式:
    • "w":写入模式,会清空文件原有内容后写入新内容
    • "a":追加模式,将新内容添加到文件末尾,保留原有内容
    • 指定encoding="utf-8":确保文本在不同系统下不会出现乱码问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 05:47:45