新手问题.在Python 2.7.2.中,我在阅读文本文件时遇到问题,这些文件看起来似乎包含一些控制字符.具体来说,循环
for line in f
一旦遇到包含该SUB字符的行(ascii十六进制代码1a),它将立即停止而不会发出任何警告或错误.使用f.readlines()结果时是一样的.从本质上讲,就Python而言,一旦SUB遇到第一个字符,文件就会完成,分配的最后一个值line就是该字符的直线.
有没有办法超越这样的角色和/或遇到一个警告时发出警告?
在Windows系统上0x1a是文件结束字符.您需要以二进制模式打开文件才能通过它:
f = open(filename, 'rb')
Run Code Online (Sandbox Code Playgroud)
缺点是你将失去面向行的性质,并且必须自己分割线:
lines = f.read().split('\r\n') # assuming Windows line endings
Run Code Online (Sandbox Code Playgroud)