我有一個程序在服務器上的.txt文件中輸出一個列表,我想將該列表保存在一個新變量中。
我做:如何從一個字符串中獲取數據結構(Python)
with open ("file.txt", "r") as myfile:
data = myfile.read().replace('\n', '')
var = data
但顯然print(var)
返回一個字符串"[list, of, stuff]"
是的,我可以繞過TXT保存過程但萬一我不能?
我有一個程序在服務器上的.txt文件中輸出一個列表,我想將該列表保存在一個新變量中。
我做:如何從一個字符串中獲取數據結構(Python)
with open ("file.txt", "r") as myfile:
data = myfile.read().replace('\n', '')
var = data
但顯然print(var)
返回一個字符串"[list, of, stuff]"
是的,我可以繞過TXT保存過程但萬一我不能?
可以使用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
ast.literal_eval()完美地解決了我的問題。謝謝! –
輸出文件是什麼格式? – Daniel
@Daniel它是一個.txt文件 –