我正在独立学习Python,更具体地说是在文件I | O中
为了加载一个文本文件,我被教导使用.readline()函数,并附带以下代码。你知道吗
in_file = open (filename, "rt")
while True:
in_line = in_file.readline ()
if not in_line:
break
in_line = in_line [:-1]
name, number = in_line.split (",")
dic [name] = number
in_file.close ()
我正在试图理解代码是怎么回事,但我很难理解这句话:
if not in_line:
break
我知道需要打破while循环,但它实际上是如何工作的呢?你知道吗
如果
in_line
为false,则没有要读取的行,则break
将中断while循环,以便在文件中没有要读取的内容时程序可以结束。你知道吗当没有更多行可读取时,^{} method 返回空字符串:
条件测试该结束条件,以结束循环。^只有当}才为真。Python中的所有“空”值都被认为是false,
in_line
是空字符串时,{not
操作符将false变成True
。参见Truth Value Testing section:在这里使用
while
循环实际上过于冗长。通过使用for
循环,使文件成为迭代器,可以更简洁地读取文件:不能保证一行以换行结束;上面的
str.rstrip()
调用仅当它实际在那里时才删除它。你知道吗最后但并非最不重要的一点是,您可以将file对象用作上下文管理器;将open file对象传递给
with
语句可确保在执行块时,即使发生异常,文件也会再次自动关闭:不再需要单独的
in_file.close()
调用。你知道吗另请参见教程中的Methods of File Objects section。你知道吗
相关问题 更多 >
编程相关推荐