Skip to main content
 首页 » 编程设计

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

2025年05月04日15小虾米

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

a   
b   
c   
d 

我正在使用以下代码在 Python 中阅读此内容:

f = open('foo.txt') 
w = f.readline() 
 
while w is not '' : 
  print w 
  w = f.readline() 

根据docs

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

为什么我会进入无限循环?

请您参考如下方法:

is 运算符测试两个引用是否引用完全相同的对象。在这种情况下,您需要如前所述进行相等性检查。

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

Python 可能会也可能不会选择重新使用现有的 str 对象(毕竟它们是不可变的)作为优化。但是,您通常不应依赖这种类型的行为,除非文档中另有特别说明(例如 None,因为它是 NoneType 的唯一实例)。