Python3如何仅以 为换行符读文件, 和 视为字符串内容
Python 3中仅以\n分割文件且保留\r字符的解决办法
我来给你捋捋问题出在哪,以及怎么解决:
首先,你用的rU模式在Python 3里已经被废弃啦,而且默认的文本读取模式会自动处理换行符——不管是\r\n、\r还是\n,都会被统一转换成\n,这就是你看不到\r字符的原因。
给你两个靠谱的解决方案:
方案一:用二进制模式读取后解码
二进制模式不会对文件内容做任何自动转换,能完整保留所有原始字符。读取后再解码成字符串,最后按\n分割就行:with open('file.txt', 'rb') as f: # 这里的编码要和你的文件实际编码一致,比如gbk、utf-16等 content = f.read().decode('utf-8') lines = content.split('\n')方案二:文本模式指定
newline=''参数
这是更推荐的文本处理方式,指定newline=''后,Python会原样保留文件中的所有换行符序列,不会做转换:with open('file.txt', 'r', newline='') as f: content = f.read() lines = content.split('\n')
两种方法都能让你得到包含\r字符的分割结果,选哪个看你习惯就行~
内容的提问来源于stack exchange,提问作者hakobot
相关产品推荐
相关产品推荐

