【发布时间】:2009-01-01 15:29:35
【问题描述】:
我有以下文件:
abcde
kwakwa
<0x1A>
line3
linllll
其中<0x1A> 表示十六进制值为0x1A 的字节。尝试在 Python 中读取此文件时:
for line in open('t.txt'):
print line,
它只读取前两行,然后退出循环。
解决方案似乎是以二进制(或通用换行模式)打开文件 - 'rb' 或 'rU'。你能解释一下这种行为吗?
【问题讨论】:
-
你怎么知道这个字节代表。对我来说,它只是在记事本++中说“SUB”
-
另一种解决方法是在 Python 2 中使用 Python 3 或
io.open();就操作系统而言,io文件对象始终以二进制模式使用文件,因此 Windows 不会过早地“结束”文件。
标签: python windows binary-data