在Python中读取SUB以外的行

mit*_*hus 9 python ascii

新手问题.在Python 2.7.2.中,我在阅读文本文件时遇到问题,这些文件看起来似乎包含一些控制字符.具体来说,循环

for line in f

一旦遇到包含该SUB字符的行(ascii十六进制代码1a),它将立即停止而不会发出任何警告或错误.使用f.readlines()结果时是一样的.从本质上讲,就Python而言,一旦SUB遇到第一个字符,文件就会完成,分配的最后一个值line就是该字符的直线.

有没有办法超越这样的角色和/或遇到一个警告时发出警告?

Eth*_*man 8

在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)


NPE*_*NPE 6

尝试以二进制模式打开文件:

f = open(filename, 'rb')
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你一千次. (3认同)