我正在使用python解析文件并且for循环中断 Notepad ++中的字符看起来像这样
©SUB0
我的循环很简单
for line in open('myfile.dat').readlines():
print line
print x
x+=1
没有错误,py文件就退出了。
我应该怎么做才能让它跳过这个角色?
答案 0 :(得分:3)
该文件是二进制文件吗?如果是这样,您可以尝试将open('myfile.dat', 'rb')
打开为二进制文件。如果以文本形式打开,文件结束字符可能会导致其过早停止读取。
答案 1 :(得分:1)
这是因为您遇到的角色是substitute character。 此字符替换了在您的设备上无法读取或打印的字符(无论您的情况如何)。
其表示形式为26(ASCII),SUB,0x1a(十六进制)和^ Z。
这不是Pythons的错,因为每种编程语言都会破坏。它是一个历史缺陷,只能通过不在文件中使用它来避免。
正如用户BrenBarn建议的那样,如果可能的话,尝试将其解析为二进制文件。