2014-07-19 81 views
2

我有一個程序在服務器上的.txt文件中輸出一個列表,我想將該列表保存在一個新變量中。
我做:如何從一個字符串中獲取數據結構(Python)

with open ("file.txt", "r") as myfile: 
    data = myfile.read().replace('\n', '') 
var = data 

但顯然print(var)返回一個字符串"[list, of, stuff]"

是的,我可以繞過TXT保存過程但萬一我不能?

+0

輸出文件是什麼格式? – Daniel

+0

@Daniel它是一個.txt文件 –

回答

6

可以使用AST

import ast 
var="[list, of, stuff]" 
var=ast.literal_eval(var) 
print var[0] 
#output list 

從文檔

ast.literal_eval(node_or_string)安全評估的表達式節點或含有Python表達式的字符串。提供的字符串或節點 可能只包含以下Python文字結構: 字符串,字節,數字,元組,列表,字典,集合,布爾值和 無。

如果你的原始數據是使用JSON,那麼你也可以使用Python標準庫中的json模塊序列化。

即使它只是print(some_list)您仍然可以使用json庫;即:

>>> from json import dumps, loads 
>>> xs = [1, 2, 3] 
>>> loads(dumps(xs)) == loads(repr(xs)) 
True 
+0

ast.literal_eval()完美地解決了我的問題。謝謝! –

相關問題