Python逐行处理文本替换字符加行首大于号输出异常排查
代码问题分析
- 核心错误:直接对字符串类型的
line_replaced做for循环遍历,字符串遍历会逐个返回单个字符,导致每个字符都被单独加>并换行写入,就是你看到的每个字符单独占一行的问题 - 逻辑顺序错误:读取行之后没有先判断是否为空行(是否读完文件),直接先做处理,会导致读完文件后多写入一行无效的
> - 输出文件打开模式用了
a追加模式,如果你是每次运行都要生成全新的结果文件,用w覆盖模式更符合需求
修正后可运行代码
# 替换为你实际的输入、输出文件路径 input_file = "input.txt" output_file = "output.txt" with open(input_file, 'r', encoding='utf-8') as fr, open(output_file, 'w', encoding='utf-8') as fa: # 直接迭代文件对象逐行读取,无需手动写readline循环 for line in fr: # 先替换制表符为逗号,再去掉行尾原有换行,拼接前缀后加统一换行写入 processed_line = ">" + line.replace('\t', ',').rstrip('\n') + '\n' fa.write(processed_line)
内容的提问来源于stack exchange,提问作者LoganLee
相关产品推荐
相关产品推荐

