У меня есть текстовый файл блокнота со списком имен

Например.

raymond james  
warren buffett  
ernest giles  
william blair  

Как бы превратить это в список, где каждый элемент списка - это ВСЕ имя в каждой строке.
Так что мой список будет:

['raymond james', 'warren buffet', 'ernest giles', 'william blair']
-1
MeHead 20 Авг 2018 в 18:21

3 ответа

Лучший ответ

Я предлагаю вам использовать strip(), чтобы избежать символов новой строки и конечных пробелов. В этом случае нет необходимости readlines():

with open('file.txt', 'r') as f:
    lines = [line.strip() for line in f]

print(lines)  # ['raymond james', 'warren buffet', 'ernest giles', 'william blair']

Или, если вам не нравится понимание списка, вы также можете использовать map() следующим образом:

with open('file.txt', 'r') as f:
    lines = list(map(str.strip,f))

print(lines)
2
Laurent H. 20 Авг 2018 в 15:32

Просто откройте файл в режиме чтения и используйте метод readlines():

with open('your_file.txt', 'r') as myfile:

    lines = myfile.readlines()

И вы можете использовать простое понимание списка, чтобы удалить символы новой строки (\n):

lines = [i.strip() for i in lines]
5
rahlf23 20 Авг 2018 в 16:02

В Python файлы, открытые в виде текста, повторяются по своим строкам. Поэтому самое простое решение

with open('myfile.txt') as f:
     my_list = list(f)

Это лучше, чем использовать readlines, потому что итератор удаляет символы новой строки, а readlines - нет.

Если вы хотите убрать дополнительные пробелы из каждой строки, как предлагают другие ответы, вы можете использовать следующее:

with open('myfile.txt') as f:
     my_list = [line.strip() for line in f]

Или map:

with open('myfile.txt') as f:
     my_list = list(map(str.strip, f))
2
Mad Physicist 20 Авг 2018 в 15:39
51933901