【发布时间】:2019-07-31 14:19:31
【问题描述】:
编程新手,python 新手 ;) 尝试学习文件操作。
我不明白下面的代码是如何工作的。当使用 for 循环调用 open() 时会发生什么,为什么这与另一个 python 函数 .read(number_of_elements) 不同?
我有一个 test.txt 文件,它的编号从 1) 到 10),每一个都在一个新行上。所以一个 10 行的 txt 文件。为什么 python 使用这个 for 循环显示整个 txt 文件?为什么它知道在每一行打印每一行?是因为 Python 将 .txt 转换为列表然后循环遍历它吗?
我试过做
print(f)
但这会返回有关 test.txt 文件的一些信息,并且没有像我预期的那样打印文件的内容。
python 代码:
with open("test.txt", "r") as f:
for line in f:
print(line)
test.txt 文件:
1)
2)
3)
4)
...
【问题讨论】:
-
我建议您查看 python 文档 (docs.python.org/3/library/functions.html#open),您可以在提供的链接中找到有关方法的信息。 python 在打开时所做的是准备您的文件以在您的情况下读取并通过“f”公开它的内部引用,我们可以想象它是一个对象。如果您遍历 'f' python 将返回文件的每一行分隔,它知道如何分隔行以查找称为新行的特殊字符:'\n'
-
打开的文件是可迭代的,每次迭代返回一行 - Python
lists和其他集合也是可迭代的。f.read()会将文件内容作为字符串返回(可能将其与非常大的文件一起使用是不明智的)。 -
谢谢先生们,这一切都清楚了。
标签: python python-3.x