Python文件读写问题:输出文件前两行合并如何修复?附逆序需求
问题排查与修复
代码核心错误
- 无效的列表操作:
L == L.append(line)是逻辑比较而非赋值,且list.append()无返回值,导致列表L无法正确存储读取的行内容。正确写法应为直接调用L.append(line)添加元素。 - 循环内重复处理逻辑:每次读取一行就执行反转和拼接操作,未等所有行读取完成就反复修改结果,逻辑完全混乱。
- 换行符重复添加:
print(string, file=out_file)会自动在输出末尾追加换行符,而拼接后的字符串已包含每行原有的换行符,最终导致格式错乱。
修复后的代码
in_file = open("words.txt", "r") out_file = open("out_words.txt", "w") lines = [] # 读取所有行到列表 for line in in_file: lines.append(line) # 反转列表得到逆序内容 reversed_lines = lines[::-1] # 拼接成字符串并写入文件 out_file.write("".join(reversed_lines)) in_file.close() out_file.close()
更简洁的写法(推荐)
使用with语句自动管理文件关闭,避免遗漏:
with open("words.txt", "r") as in_file, open("out_words.txt", "w") as out_file: # 读取所有行并直接逆序写入 out_file.writelines(reversed(in_file.readlines()))
验证结果
修复后,输入文件内容:
programming python world hello
输出文件out_words.txt会按要求逆序排列,每行独立:
hello world python programming
内容的提问来源于stack exchange,提问作者RykerStrike
相关产品推荐
相关产品推荐

