我正在编写一个使用正则表达式(.html
模块)搜索re
文件的教程。我正在使用翻译。
我打开了文件并执行了搜索。在每次尝试之后,我使用f.seek(0)
返回到文件的开头以进行下一次尝试。我使用f.tell()
确认了我在文件中的位置。
前几次我这样做了,文件的位置(以字节为单位)返回时没有附加L
。但经过多次尝试后,f.tell()
返回了附加L
的位置。
我了解L
表示文件位置(bytes
)是long number
。但是,为什么f.tell()
突然开始返回L
,而以前没有?{/ p>
然后我关闭并重新打开文件,f.tell()
从一开始就返回了long number
?
答案 0 :(得分:3)
是的,L
表示long
(实际上仅受内存和计算时间的限制)。
只要值超出int
类型可以处理的范围,Python就会自动将long
s自动提升为int
s。此外,如果发生了与其他long
的某些操作,则结果始终为long
(0 + 0L
→0L
)。
在你的情况下,我只能推测造成这种影响的原因。也许阅读超出一定限度会导致推广,也许是一些内部处理(并不总是发生)是原因。
我不认为这对你很重要。