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编码
>>> 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.