我以文本模式在文件中编写了流.
# python code
f = open("somewhere in my computer","w")
f.write("Hello\nWorld")
f.write(chr(26)) # writing ascii character #26 to file
f.write("hhh")
f.close()
我无法读取ASCII字符#26之后的字节.我知道我应该用二进制模式打开文件.是ascii字符#26 EOF字符.如您所知,没有这样的东西,即没有EOF字符.那是什么问题呢?这是取决于操作系统的问题吗? (我在Microsoft Windows中尝试过).
解决方法:
问题是由于窗户. 0x1A是Ctrl-Z,DOS使用它作为文件结尾标记. Python使用Windows CRT函数_wfopen,该函数实现了“ Ctrl-Z为EOF”语义.
如果文件不是128字节的精确倍数,则需要一种标记文本结尾的方法. article表示Ctrl-Z的选择基于DEC使用的更旧的约定.