如何在Python中从文本文件读取特定行

时间:2018-11-04 13:32:16

标签: python text

我有一个Python文件和一个文本文件,其中包含大约1000个名称。我使用

这样的文件在Python中打开了文件

names = open('names.txt', 'r')

文本文件的布局如下:

Jason
Drake
Larry

如何在屏幕上打印名称“ Drake”?

我知道以前已经回答过这个问题,但是由于解释已经深入,我无法理解。由于我是编程新手,请以一种易于理解的方式进行解释。

3 个答案:

答案 0 :(得分:0)

names = open('names.txt', 'r')       # open the text file
namesList = names.read().split('\n') # read the entire file and split into a list
print(namesList[1])                  # print the element at index 1
names.close()                        # close the text file

输出:

  

德雷克

如果您只回答一行,因为您将只读一个名字:

print(open('names.txt', 'r').read().split('\n')[1])

如果您要一遍又一遍地做,那可能是一件昂贵的事情。

在任何一种情况下,如果您使用的是CPython,则垃圾收集器将负责关闭文件。如果您使用其他实现,但不确定,可以使用with

with open('names.txt', 'r') as names:
    namesList = names.read().split('\n')
    print(namesList[1])

答案 1 :(得分:0)

with open('names.txt') as names:
    names = names.read()
    names = names.split()
    print(names[1])

第一行在变量names中打开文件

第二行将文件转换为文本。

第三行将文本分成一个列表,每行的内容是一个新元素。

第四行显示名称。 请注意,在Python中,第一个数字为0,因此,如果要访问列表中的名字,则为names[0]

答案 2 :(得分:0)

只需专门寻找Drake并打印出来即可:

to_find = 'Drake'

with open('names.txt') as file:
    for line in map(str.strip, file):
        if line == to_find:
            print(line)

哪些输出:

Drake