0x1A上的线路读取扼流圈

发布于 2021-01-29 19:15:08

我有以下文件:

abcde
kwakwa
<0x1A>
line3
linllll

其中<0x1A>代表一个十六进制值为0x1A的字节。尝试以以下方式在Python中读取此文件时:

for line in open('t.txt'):
    print line,

它仅读取前两行,并退出循环。

解决方案似乎是以二进制(或通用换行模式)打开文件-‘rb’或’rU’。你能解释这种行为吗?

关注者
0
被浏览
48
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    0x1A是Ctrl-Z,而DOS在历史上一直将其用作文件结束标记。例如,尝试使用命令提示符,然后“键入”文件。它将仅在Ctrl-Z上显示内容。

    Python使用Windows CRT函数_wfopen,该函数实现了“ Ctrl-Z为EOF”语义。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看