如何在Python中导出列表至.txt文件并使记事本识别换行?
解决Python导出列表到TXT文件后记事本不识别换行的问题
这个坑我踩过!问题出在换行符的差异上:Windows系统的记事本只认**\r\n**(回车符+换行符)作为换行标记,而你代码里用的**\n**是Unix/Linux系统的换行符,记事本对它“视而不见”,自然就把所有内容挤在一行了。
给你几个靠谱的解决方案:
方法1:直接使用Windows风格换行符
把代码里的\n换成\r\n就行,修改后的代码如下:
string = ['str1 123','str2 234','str3 345'] outF = open("outp.txt", "w") for item in string: outF.write("%s\r\n" % item) outF.close()
方法2:用系统原生换行符(跨平台推荐)
借助Python的os模块里的linesep变量,它会自动根据当前操作系统生成对应的换行符,不管是Windows还是Mac/Linux都能适配:
import os string = ['str1 123','str2 234','str3 345'] with open("outp.txt", "w") as outF: # 用with语句更安全,无需手动close for item in string: outF.write(f"{item}{os.linesep}")
方法3:用print函数自动处理换行
print函数默认会添加系统对应的换行符,直接指定输出文件即可,代码更简洁:
string = ['str1 123','str2 234','str3 345'] with open("outp.txt", "w") as outF: for item in string: print(item, file=outF)
另外提一句:Notepad++之所以能正常显示,是因为它支持识别多种换行符格式,而系统自带的记事本对换行符的兼容性比较差,只认Windows原生的\r\n。
内容的提问来源于stack exchange,提问作者Kahunasan
相关产品推荐
相关产品推荐

