python - 0x1A 上的线路读取扼流圈

标签 python windows binary-data

我有以下文件:

abcde
kwakwa
<0x1A>
line3
linllll

在哪里<0x1A>表示十六进制值为 0x1A 的字节。尝试在 Python 中读取此文件时:

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

它只读取前两行,然后退出循环。

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

最佳答案

0x1A 是 Ctrl-Z,DOS 过去使用它作为文件结束标记。例如,尝试使用命令提示符并“键入”您的文件。它只会显示 Ctrl-Z 上方的内容。

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

关于python - 0x1A 上的线路读取扼流圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/405058/

相关文章:

python - 有人可以向我解释这个简单的语法吗

c++ - 如何使用 gotoxy 函数代替 clrscr

Matlab : Unable to get unique rationals when implementing a formula for binary to real number conversion Part1

c# - 解析 C# bootp 服务器的二进制数据?

python - 是否有用于 Python 和 Django 的 HAML 实现

python - 使用 Python 的 ETL

Python-从txt创建数组

c# - 获取 Windows 版本

windows - Azure SDK 2.2安装问题

parsing - 高效灵活的二进制数据解析