对于输入文本文件,我知道 .seek 和 .tell 通常都使用字节进行操作 - 也就是说,.seek 查找与其给定参数指定的点相关的一定数量的字节,并且 .tell 返回字节数从文件开始。
我的问题是:在使用其他编码(如 utf-8)时,这是否同样有效?例如,我知道 utf-8 需要几个字节来表示某些字符。
看起来,如果这些方法在解析 utf-8 文件时仍然处理字节,则可能会导致意外行为(例如,光标可能最终位于字符的多字节编码中,或者多字节字符可能注册为几个字符)。
如果是这样,是否有其他方法可以完成相同的任务?特别是在解析文件时需要有关光标位置的字符信息。
另一方面,如果您在 open() 函数中指定编码...
infile = 打开(文件名,编码='utf-8')
.seek 和 .tell 的行为会改变吗?