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

如何让指定路径下所有TXT文件的反转输出独立存储?

实现单个TXT文件对应独立反转输出文件

原代码的问题

  1. 代码只读取了每个TXT文件的最后一行——for line in f循环结束后,line变量仅保留最后一行内容
  2. 用os.system调用echo写文件既冗余又缺乏灵活性,Python本身就有完善的文件操作能力
  3. 所有反转内容都追加到同一个output.txt,无法实现按输入文件拆分存储

修改后的代码

import os

path = '/txt_files_path/'  # 替换为你的TXT文件实际路径

for filename in filter(lambda p: p.endswith(".txt"), os.listdir(path)):
    # 拼接输入文件的完整路径
    input_file = os.path.join(path, filename)
    # 生成对应输出文件名,例如"demo.txt"会转为"demo_reversed.txt"
    output_filename = f"{os.path.splitext(filename)[0]}_reversed.txt"
    output_file = os.path.join(path, output_filename)
    
    # 读取输入文件并处理每行反转
    with open(input_file, 'r') as f:
        # 遍历每行,去除换行符后反转,再补回换行符
        reversed_lines = [line.rstrip()[::-1] + '\n' for line in f]
    
    # 写入独立输出文件
    with open(output_file, 'w') as out_f:
        out_f.writelines(reversed_lines)

核心改动说明

  • 生成独立输出文件:通过os.path.splitext拆分文件名与后缀,拼接_reversed.txt作为输出文件名,确保每个输入文件对应唯一输出文件
  • 正确处理所有行:用列表推导式一次性处理文件全部内容,避免原代码只取最后一行的问题
  • 使用Python原生文件操作:替代系统命令调用,既规避跨系统兼容性问题,又能直接控制写入逻辑(覆盖模式w会自动创建新文件,无需担心重复追加)

可选调整:反转整个文件内容

如果你的需求不是每行单独反转,而是将整个文件内容整体倒转(比如"abc\n123"转为"321\ncba"),可以改用以下逻辑:

import os

path = '/txt_files_path/'

for filename in filter(lambda p: p.endswith(".txt"), os.listdir(path)):
    input_file = os.path.join(path, filename)
    output_filename = f"{os.path.splitext(filename)[0]}_reversed.txt"
    output_file = os.path.join(path, output_filename)
    
    with open(input_file, 'r') as f:
        # 读取整个文件内容并反转
        full_content = f.read()
        reversed_content = full_content[::-1]
    
    with open(output_file, 'w') as out_f:
        out_f.write(reversed_content)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 21:35:12