Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在用 python 解析一个文件,并且在 Notepad++ 中的字符上的 for 循环中断看起来像这样
©SUB0
我的循环很简单
for line in open('myfile.dat').readlines(): print line print x x+=1
没有错误,py文件就退出了。
我应该怎么做才能让它跳过那个字符?
该文件是二进制文件吗?如果是这样,您可以尝试open('myfile.dat', 'rb')以二进制形式打开。如果以文本形式打开,文件结尾字符可能会导致它过早停止阅读。
open('myfile.dat', 'rb')
发生这种情况是因为您遇到的字符是替代字符。这个字符替换了一个在您的设备上无法读取或打印的字符(无论在您的情况下意味着什么)。
它的表示是26(ASCII)、SUB、0x1a(十六进制)和^Z。
这不是 Python 的错,因为每种编程语言都会在这里崩溃。这是一个历史缺陷,只能通过不在文件中使用它来避免。
正如用户BrenBarn建议的那样,如果可能,请尝试将其解析为二进制文件。