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

Linux环境下Python遍历文件夹并修改文件的技术求助

如何利用os.walk获取的路径修改文件

你已经通过os.walk拿到了文件的完整路径,接下来只需要用这个路径打开文件,就能进行各种修改操作了。下面给你几个实用的操作示例:

示例1:替换文件中的指定内容

比如把文件里的"旧文本"替换成"新文本",代码如下:

import os

parent_dir = "./folder"  # 替换成你的根文件夹实际路径

for subdir, dirs, files in os.walk(parent_dir):
    for file in files:
        file_path = os.path.join(subdir, file)
        # 读取原文件内容
        with open(file_path, 'r', encoding='utf-8') as f:
            content = f.read()
        
        # 执行内容替换
        modified_content = content.replace("旧文本", "新文本")
        
        # 将修改后的内容写回文件
        with open(file_path, 'w', encoding='utf-8') as f:
            f.write(modified_content)
        
        print(f"已完成修改: {file_path}")

示例2:在文件末尾追加内容

如果只是需要给每个文件加一行内容,可以这样写:

import os

parent_dir = "./folder"

for subdir, dirs, files in os.walk(parent_dir):
    for file in files:
        file_path = os.path.join(subdir, file)
        # 以追加模式打开文件
        with open(file_path, 'a', encoding='utf-8') as f:
            f.write("\n这是追加的新内容")
        
        print(f"已追加内容: {file_path}")

实用小技巧

  • 过滤文件类型:如果只想处理特定后缀的文件(比如.txt),可以加个判断:
    if file.endswith('.txt'):
        # 在这里执行你的修改操作
    
  • 备份原文件:修改前建议备份,防止出错,用shutil模块复制即可:
    import shutil
    shutil.copy(file_path, f"{file_path}.bak")  # 备份成原文件名加.bak的文件
    
  • 注意编码:如果你的文件不是UTF-8编码,记得修改open函数里的encoding参数(比如gbk)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 07:15:37