2015-09-24 3 views
1

Я работаю в программе, которая сохраняет некоторые продукты и устраивает их в текстовый файл в соответствии с их ценой. текстовый файл генерируется выглядит как этотКак я могу прочитать текстовый файл, содержащий списки, и добавить эти списки в список?

['Kingstom', 0.92, 'china'] 
['sony', 16.88, 'USA'] 

Но мне нужно включить опцию «загрузки», в котором пользователь загружает текстовый файл, чтобы добавить больше продуктов и генерировать еще один текстовый файл с данными, расположенными.

Я использовал

data = [line.strip() for line in open('test.txt', 'r')] 

но он вернулся мне этот

["['Kingstom', 0.92, 'china']", "['sony', 16.88, 'USA']"] 

Но мне нужен список, как это для управления данными в лучшую сторону

[['Kingstom', 0,92, 'china'], ['Sony', 16.88, 'USA']] 

Так данные [0] будут ['Kingstom', 0,92, 'china'] и так далее.

+1

'ast.literal_eval' - ваш лучший выбор. –

+2

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

+0

, если возможно, вы должны использовать формат 'json'. – jfs

ответ

2

это звучит как работа для ast.literal_eval

import ast 
[ast.literal_eval(x) for x in open("test.txt")] 

однако лучшим решением было бы, вероятно, чтобы сохранить данные в более общем формате (т.е. CSV, JSON, XML и т.д.) и использовать соответствующий декодер

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