Как прочитать определенную строку из текстового файла в Python - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть файл Python и текстовый файл с около 1000 имен в нем. Я открыл этот файл в Python, как это

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

текстовый файл раскладывается следующим образом:

Jason
Drake
Larry

Как мне вывести на экран имя «Дрейк»?

Я знаю, что на этот вопрос уже отвечали ранее, но я не мог понять объяснения, поскольку они были выдвинуты. Пожалуйста, объясните в простой для понимания форме, поскольку я новичок в программировании.

Ответы [ 3 ]

0 голосов
/ 04 ноября 2018
with open('names.txt') as names:
    names = names.read()
    names = names.split()
    print(names[1])

Первая строка открывает файл в переменной names

Вторая строка преобразует файл в текст.

Третья строка разбивает текст на список, причем содержимое каждой строки является новым элементом.

В четвертой строке напечатано имя. Обратите внимание, что в Python первое число равно 0, поэтому, если вы хотите получить доступ к первому имени в списке, это будет names[0].

0 голосов
/ 04 ноября 2018

Просто найдите Drake и распечатайте:

to_find = 'Drake'

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

Какие выходы:

Drake
0 голосов
/ 04 ноября 2018
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

Выход:

Drake

Если вам нужен только один ответ, потому что вы собираетесь прочитать только одно имя:

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])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...