在Python中读取文件进入无限循环

2024-05-01 21:57:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含以下内容的文件:

a  
b  
c  
d

我使用以下代码在Python中阅读:

^{pr2}$

根据docs

if f.readline() returns an empty string, the end of the file has been reached

为什么我要进入一个无限循环?在


Tags: 文件ofthe代码andocsreadlinestring
3条回答

操作符is测试两个引用是否引用了完全相同的对象。在本例中,您需要一个如您所述的相等性检查。在

发生无限循环是因为尽管它返回了'',但它是str的不同实例。不同的实例,但值相同。在

Python可以也可以不选择作为一种优化来恢复现有的str对象(毕竟它们是不可变的)。但是,一般情况下,您不应该依赖于这种类型的行为,除非文档中另有说明(比如None,因为它是NoneType的唯一实例)。在

试试这个

f = open('foo.txt')

while 1:
    line = f.readline()
    if not line:
        break
    print line

这很有趣。在

如果你更换

while w is ''

while w != ''

代码将成功运行。在

这意味着readline()返回空字符串的新实例,而不是返回执行时获得的全局实例

s = ''
t = ''
assert s is t

相关问题 更多 >