Python 如何从文件中读取数组并将其分配给变量?

Python 如何从文件中读取数组并将其分配给变量?,python,python-3.x,list,file,Python,Python 3.x,List,File,我试图从我之前创建的文件中读取一个数组,然后将其分配给变量。 但现在我遇到了一个问题。当我将文件内容赋给变量时,它变成了字符串而不是数组。 如何将其转换回数组 file.txt内容: [(0,0.2,),(0,0.1,),(0.2,0.2,),(0.2,0.2,),(0.4,0.2,),] 我的代码: valid_outputs = f=open("fileName.txt","r") if(f.mode == 'r'): valid_outputs = f.read() 您可以在字符

我试图从我之前创建的文件中读取一个数组,然后将其分配给变量。 但现在我遇到了一个问题。当我将文件内容赋给变量时,它变成了字符串而不是数组。 如何将其转换回数组

file.txt内容:

[(0,0.2,),(0,0.1,),(0.2,0.2,),(0.2,0.2,),(0.4,0.2,),]

我的代码:

valid_outputs = f=open("fileName.txt","r")
if(f.mode == 'r'):
    valid_outputs = f.read()
您可以在字符串上使用:

>>> ast.literal_eval('[(0, 0.2, ),(0, 0.1, ),(0.2, 0.2, ),(0.2, 0.2, ),(0.4, 0.2, ),]')
[(0, 0.2), (0, 0.1), (0.2, 0.2), (0.2, 0.2), (0.4, 0.2)]

有点复杂,但没有任何包装:

>>> [tuple([float(i) for i in block.split(",")[:2]]) for block in valid_outputs.replace(")]", "").replace("[(", "").split("),(")]
[(0.0, 0.2), (0.0, 0.1), (0.2, 0.2), (0.2, 0.2), (0.4, 0.2)]

我更新了到Python 3的链接。。。主要是为了帮助搜索引擎找到正确的搜索引擎,但OP确实明确地标记了Python-3@SamMason:接得好,谢谢你这么做!这不是数组,而是一个Python
list
tuple
值。但是,我不确定您是如何生成准确的字符串的,因为Python表示法不包含尾随的逗号。这一个非常有效,谢谢!
x = None
with open("file.txt", "r") as f:
    x = eval(f.read())

print x