Eli*_*sky 13 python windows binary-data
我有以下文件:
abcde
kwakwa
<0x1A>
line3
linllll
Run Code Online (Sandbox Code Playgroud)
其中,<0x1A>表示十六进制值为0x1A的字节.尝试在Python中读取此文件时:
for line in open('t.txt'):
print line,
Run Code Online (Sandbox Code Playgroud)
它只读取前两行,并退出循环.
解决方案似乎是以二进制(或通用换行模式)打开文件 - 'rb'或'rU'.你能解释一下这种行为吗?
Ned*_*der 28
0x1A是Ctrl-Z,DOS历史上将其用作文件结束标记.例如,尝试使用命令提示符,并"键入"您的文件.它只会在Ctrl-Z上显示内容.
Python使用Windows CRT函数_wfopen,它实现了"Ctrl-Z is EOF"语义.