Python删除文本文件每行前7个字符的问题排查
解决删除每行前7个字符的Python代码问题
问题分析
你的代码存在三个核心问题,导致输出不符合预期甚至出现整行被删除的现象:
- 切片索引错误:要删除前7个字符,需从索引7开始截取(索引从0开始,前7个字符对应0-6),原代码用
line[6:]会保留第7个字符,若行长度不足7则返回空字符串。 - 重复写入换行符:读取的每行本身已包含换行符,额外写入
'\n'会导致多余空行,空切片加换行就会变成空行,看起来像整行被删除。 - 追加模式干扰:用
'a'模式打开输出文件会在原有内容后追加,可能导致旧内容干扰结果。
修正后的代码
with open('input_nnn.txt', 'r') as input_file: with open('input_nnnn.txt', 'w') as output_file: for line in input_file: # 截取从第8个字符开始的内容(即去掉前7个) output_file.write(line[7:])
可选的边缘情况处理
如果文件中存在长度不足7的行,可添加判断避免写入空行:
with open('input_nnn.txt', 'r') as input_file: with open('input_nnnn.txt', 'w') as output_file: for line in input_file: if len(line) >= 7: output_file.write(line[7:]) else: # 可选择保留原行或跳过,此处为保留原行 output_file.write(line)
验证结果
针对你的示例输入,修正后的代码会输出你期望的结果:每行从5开始的内容,无多余空行。
内容的提问来源于stack exchange,提问作者Kish Kharka
相关产品推荐
相关产品推荐

