如何在python中从txt文件读取数据

如何在python中从txt文件读取数据,python,readfile,Python,Readfile,我的文件中有一个名称和号码(“电话簿”文件的名称),我试图使用以下代码读取所有数据: 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_电话簿文

我的文件中有一个名称和号码(“电话簿”文件的名称),我试图使用以下代码读取所有数据:

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_电话簿文件没有len()

如果我不使用len,它会继续打印数据,因为我使用的是While循环。
有人能告诉我如何使用这个函数来读取列表的全部数据吗?使用While循环

在这里,每一行都可以在
read
上迭代

def read_phonebook():
    read = open("phone_book.txt", 'r')
    i = 0
    for line in read:
        print(line)

    read.close() 

首先阅读教程

  • 如果您正在读取文件,则不需要定义函数
  • 先学基础知识
  • 如果您只是在阅读文件,并且是编程初学者,那么您将采用一种复杂的方法
  • 采取一种简单的方法,这有助于你理解输入、输出和最终目标
以下是初学者的快速提示以及用python读取文件的最简单方法

with open("phone_book.txt") as mytxt:
    for line in mytxt:
        print (line)

        Or do something with line

        # if you want to split the line
        # assuming data is tab separated
        newline = line.rstrip("\n").split("\t")

        # if you want conditional printing
        if len(line) > 0:
            print(line)
课程:

  • 当您使用open…
    时,
    文件将在其超出该范围时自动关闭
  • 对行使用
    ,而不执行
    .read()
    会阻止您加载内存中的所有数据
  • 修复缩进问题

告诉您所需的一切—它甚至附带代码示例……为什么要使用while循环来读取文件?什么是
菜单
?如果下一个命令覆盖它,为什么要设置
i=0
?为什么您希望
len
给您一个iterable?如果你想在任何东西的长度上循环,它将是
范围内的i(len(read)):
。。。但是
read
这里有一个iterable对象,因此使用
len()
实际上会在打印每一行之前迭代整个过程,剩下的iterable是完全消耗的,这意味着在实际缩进似乎未对齐之后,无法打印任何内容:-嗯,接得好!