1

我正在用 python 解析一个文件,并且在 Notepad++ 中的字符上的 for 循环中断看起来像这样

©SUB0

我的循环很简单

for line in open('myfile.dat').readlines():
    print line  
    print x
    x+=1

没有错误,py文件就退出了。

我应该怎么做才能让它跳过那个字符?

4

2 回答 2

3

该文件是二进制文件吗?如果是这样,您可以尝试open('myfile.dat', 'rb')以二进制形式打开。如果以文本形式打开,文件结尾字符可能会导致它过早停止阅读。

于 2013-05-13T19:27:10.047 回答
1

发生这种情况是因为您遇到的字符是替代字符。这个字符替换了一个在您的设备上无法读取或打印的字符(无论在您的情况下意味着什么)。

它的表示是26(ASCII)、SUB、0x1a(十六进制)和^Z。

这不是 Python 的错,因为每种编程语言都会在这里崩溃。这是一个历史缺陷,只能通过不在文件中使用它来避免。

正如用户BrenBarn建议的那样,如果可能,请尝试将其解析为二进制文件。

于 2013-05-13T19:27:57.653 回答