Python 中文本文件中的空字符

Null Character in Text Files in Python

>>> file = open('foo.txt')
>>> file.seek(2)  
2  
>>> file.read(1)  
'\n'  
>>> file.tell()  
4  

为什么当前位置没有向前移动1个字符? '\n' 不应该是 1 个字符吗?

文件前4行内容:

1@
2@
3@
@

PS : 我在 windows.

不要试图解释 file.tell() for a text file 的值——它只是一些表示流中位置的不透明数字(您可以将其传递给 file.seek())。

在文本文件中,file.read(1) 读取一个 Unicode 字符(代码点),而不是字节。根据用于读取文本文件的字符编码,一个 Unicode 代码点可能是一到四个字节(通常)。

默认为通用换行模式:'\r\n''\r''\n' 都转换为 '\n'

要以字节形式查看文件内容,请以二进制模式打开:'rb'file.tell() return 在这种情况下以字节为单位的位置。

b'[=19=]'(空字节)表示Windows.

上通用的utf-16编码