【发布时间】:2018-11-12 12:54:21
【问题描述】:
我的文件中有姓名和号码(文件名“phone_book”),我尝试使用以下代码读取所有数据:
def read_phonebook():
read = open("phone_book.txt", 'r')
i = 0
for i in (len(read)):
print(i + '\t')
read.close()
while True:
if menu == 2:
read_phonebook()
但它给出了错误:read_phonebook 文件没有 len()
如果我不使用 len,它会继续打印数据,因为我使用的是 While 循环。 有人可以解释一下如何让这个函数读取列表的全部数据吗?使用 While 循环?
【问题讨论】:
-
docs.python.org/3/tutorial/… 告诉你所有你需要的——它甚至附带代码示例......
-
为什么要使用 while 循环来读取文件?
menu是什么?如果下一个命令覆盖它,为什么要设置i = 0?你为什么期待len给你一个可迭代的?它将帮助您制作minimal reproducible example。 -
如果你想循环任何东西的长度,它会是
for i in range(len(read)):...但是read这里是一个可迭代的对象,所以使用len()实际上会在之前迭代整个东西你打印了每一行,剩下的是一个完全消耗的迭代,这意味着之后什么都不能打印