2015-06-04 2 views
-1

Я разместил список в текстовом файле. Я хочу, чтобы python читал текстовый файл и возвращал содержимое в виде списка. Однако, вместо чтения содержимого в виде строки:Python: Прочитать файл со списком как список

Текстовый файл:

['a','b','c'] 

Python:

ids=[] 

writtenFile =open('file.txt') 
readFile=writtenFile.read() 
ids= readFile 
writtenFile.close() 
print ids 

Что возвращаемые [ 'а', 'B', 'C '] как строка, а не как список или только текст. Есть ли способ, который я могу извлечь ['a', 'b', 'c'] из текстового файла, а затем сохранить это в строке ids, чтобы идентификаторы были списком ['a', 'b', 'c' ], а не строка? "[ 'А', 'б', 'с']"?

+0

'Я разместил список в текстовом файле', почему бы вам это сделать? – njzk2

+0

@ njzk2, но в чем проблема с этим, он хочет знать, как преобразовать в объект списка python из строки. –

+0

Если вы знаете, у меня есть 3 сценария, которые должны использовать тот же список из тысяч элементов. Я хочу, чтобы первый скрипт создал список, а затем сохранил файл, который другие скрипты могут читать – auto

ответ

2

Использование ast.literal_eval буквально оценить содержимое файла, как написано, хотя на самом деле строка:

data = ast.literal_eval(open('data.txt').read()) # create file, read contents, evaluate 
+0

Обязательно «импортируйте ast», чтобы вы могли использовать 'literal_eval' –

+0

Спасибо, это работает. – auto

1

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

with open('file.txt') as f: 
    print(f.readline().translate(None,"'[]\n").split(",")) 
    ['a', 'b', 'c'] 
Смежные вопросы