Python写文件时如何让内容与print逐行输出的效果完全一致?
问题原因
你当前的代码直接对matched_lines[0:2]切片得到的列表整体做了字符串转换,写入文件的是列表的完整字符串表示,因此会自带外层方括号[],和你循环打印时逐行输出单个元组的效果存在差异。
修改方案
方案1:基于原有写法逻辑调整
和print的遍历逻辑保持一致,逐行写入每个元素即可:
#1 for line in matched_lines[0:2]: #2 print(line) #3 file = open("pythonsnmp.txt", "w") for line in matched_lines[0:2]: #4 x = str(line) #5 file.write(x) #6 file.write('\n') #7 file.close()
方案2(更推荐)
使用with上下文管理器自动管理文件关闭,避免遗漏close()导致的资源泄漏,代码更简洁:
for line in matched_lines[0:2]: print(line) with open("pythonsnmp.txt", "w") as file: for line in matched_lines[0:2]: file.write(f"{line}\n")
修改后写入文件的内容会和print输出的内容完全一致,每行一个元组,无外层方括号。
内容的提问来源于stack exchange,提问作者Lu儒
相关产品推荐
相关产品推荐

