关于f.tell()的Python

时间:2012-11-28 12:56:36

标签: python python-2.6

我正在编写一个使用正则表达式(.html模块)搜索re文件的教程。我正在使用翻译。

我打开了文件并执行了搜索。在每次尝试之后,我使用f.seek(0)返回到文件的开头以进行下一次尝试。我使用f.tell()确认了我在文件中的位置。

前几次我这样做了,文件的位置(以字节为单位)返回时没有附加L。但经过多次尝试后,f.tell()返回了附加L的位置。

我了解L表示文件位置(bytes)是long number。但是,为什么f.tell()突然开始返回L,而以前没有?{/ p>

然后我关闭并重新打开文件,f.tell()从一开始就返回了long number

1 个答案:

答案 0 :(得分:3)

是的,L表示long(实际上仅受内存和计算时间的限制)。

只要值超出int类型可以处理的范围,Python就会自动将long s自动提升为int s。此外,如果发生了与其他long的某些操作,则结果始终为long0 + 0L0L)。

在你的情况下,我只能推测造成这种影响的原因。也许阅读超出一定限度会导致推广,也许是一些内部处理(并不总是发生)是原因。

我不认为这对你很重要。