cannot read ascii character 26?

前端 未结 2 1638
后悔当初
后悔当初 2020-12-21 06:28

I wrote a stream in a file in text mode.

# python code
f = open(\"somewhere in my computer\",\"w\")
f.write(\"Hello\\nWorld\")
f.write(chr(26)) # writing asc         


        
2条回答
  •  时光说笑
    2020-12-21 06:45

    The problem is because of the windows. 0x1A is Ctrl-Z, and DOS used that as an end-of-file marker. Python uses the Windows CRT function _wfopen, which implements the "Ctrl-Z is EOF" semantics. If your file wasn't an exact multiple of 128 bytes, you needed a way to mark the end of the text. This article implies that the selection of Ctrl-Z was based on an even older convention used by DEC.

提交回复
热议问题