2016-08-05 5 views
0

У меня есть текстовый файл под названием «test», и я хотел бы создать список в Python и распечатать его. У меня есть следующий код, но он не печатает список слов; он печатает весь документ в одной строке.Как создать список из текстового файла в Python

file = open("test", 'r') 
lines = file.readlines() 

my_list = [line.split(' , ')for line in open ("test")] 
print (my_list) 
+1

Вы должны быть более конкретными о том, что вы пытаетесь сделать. Приведенный выше код читает один и тот же файл двумя разными способами, и в вашем описании недостаточно подробностей, чтобы понять, какова ваша цель. – ShadowRanger

+0

Если ваш файл имеет значения, разделенные запятыми, вы можете использовать библиотеку CSV (значения, разделенные запятыми), встроенную в python. –

+0

Возможный дубликат [Как прочитать строку строки в строке с помощью Python] (http://stackoverflow.com/questions/3277503/how-to-read-a-file-line-by-line-into- a-list-with-python) – Mahdi

ответ

1

Когда вы сделаете это:

file = open("test", 'r') 
lines = file.readlines() 

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

list_word = [] 
for l in lines: 
    list_word.append(l.split(" ")) 
+0

Обратите внимание, что перед этим вы также можете удалить символ \ n, используя: l = l.replace ("\ n", "") – Michel

2

Я считаю, что вы пытаетесь достичь что-то вроде этого:

data = [word.split(',') for word in open("test", 'r').readlines()] 

Было бы полезно, если бы вы указать какой тип текстового файла вы пытаетесь прочитать, поскольку есть несколько модулей (т.е. csv), которые приведут к результату намного проще.

Как отмечалось, вы можете также strip новую строку (в зависимости от того, какой линии окончание вы используете), и вы получите что-то вроде этого:

data = [word.strip('\n').split(',') for word in open("test", 'r').readlines()] 

Это производит список строк со списком слов.

Смежные вопросы