Leo*_*llo 2 python data-structures
我有一个程序在服务器上的.txt文件中输出一个列表,我想将该列表保存在一个新变量中.
我正在做:
with open ("file.txt", "r") as myfile:
data = myfile.read().replace('\n', '')
var = data
Run Code Online (Sandbox Code Playgroud)
但显然会print(var)返回一个字符串"[list, of, stuff]"
是的,我可以绕过txt-save程序,但万一我不能?
你可以使用AST
import ast
var="[list, of, stuff]"
var=ast.literal_eval(var)
print var[0]
#output list
Run Code Online (Sandbox Code Playgroud)
来自docs
ast.literal_eval(node_or_string)安全地评估表达式节点或包含Python表达式的字符串.提供的字符串或节点可能只包含以下Python文字结构:字符串,字节,数字,元组,列表,dicts,集合,布尔值和None.
如果您使用JSON序列化了原始数据,那么您也可以使用Python标准库中的json模块.
即使只是print(some_list)你仍然可以使用json库; 即:
>>> from json import dumps, loads
>>> xs = [1, 2, 3]
>>> loads(dumps(xs)) == loads(repr(xs))
True
Run Code Online (Sandbox Code Playgroud)