Python中的文件读取问题

时间:2013-06-05 02:40:59

标签: string file-io python-3.x

使用时在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

1 个答案:

答案 0 :(得分:2)

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

  

推荐()

     

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

     

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