2

在使用 python 读取文件 f = open ("filename.txt") 并使用数据访问数据时 ,最终 为每一步f.read(1) 找到流 usibg 的位置 ;f.tell()我们得到一个从 0 到当前位置的连续编号。

我面临的问题是我实际上得到了f.tell()一些位置的随机数,然后继续这些数字。例如,f.tell()输出看起来类似于以下内容

0
1
2
3
133454568679978
6
7
8...

知道为什么会这样吗?

我的代码:

f=open("temp_mcompress.cpp")
current = ' '
   while current != '' :
   print(f.tell())
   current = f.read(1)

f.close()

Temp_mcompress.cpp 文件:

#include <iostream>

int main(int a)
{
}

输出 : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 18446744073709551636 18446744073709551638 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 18446744073709551655 40 41 43 44

4

1 回答 1

2

看来我可能已经发现可能仍然适用于 python 3.x 的问题:来源:http ://docs.python.org/2.4/lib/bltin-file-objects.html

告诉()

返回文件的当前位置,如 stdio 的 ftell()。

注意:在 Windows 上,当读取具有 Unix 风格行尾的文件时,tell() 可能会返回非法值(在 fgets() 之后)。使用二进制模式('rb')来规避这个问题。

于 2013-06-05T04:27:36.393 回答