Python 如何从文件中读取数组并将其分配给变量?
我试图从我之前创建的文件中读取一个数组,然后将其分配给变量。 但现在我遇到了一个问题。当我将文件内容赋给变量时,它变成了字符串而不是数组。 如何将其转换回数组 file.txt内容: [(0,0.2,),(0,0.1,),(0.2,0.2,),(0.2,0.2,),(0.4,0.2,),] 我的代码: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() 您可以在字符
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