我有一个文件test.txt,它有一个数组:
array = [3,5,6,7,9,6,4,3,2,1,3,4,5,6,7,8,5,3,3,44,5,6,6,7]
Run Code Online (Sandbox Code Playgroud)
现在我想要做的是获取数组的内容并使用数组执行一些计算.但问题是当我这样做open("test.txt")时输出内容作为字符串.实际上阵列非常大,如果我做一个循环,它可能效率不高.有没有办法在不分裂的情况下获取内容,?有什么新想法吗?
如果要在文件中存储类似python的表达式,只存储表达式(即不存在array =)并使用它进行解析ast.literal_eval().
但是,请考虑使用不同的格式,例如JSON.根据计算结果,您可能还需要考虑使用不需要一次将所有数据加载到内存中的格式.
你的文本文件是否需要看起来像python语法?逗号分隔值列表是提供数据的常用方法:
1,2,3,4,5
Run Code Online (Sandbox Code Playgroud)
然后你可以用csv模块或上面提到的numpy函数读/写.有很多关于如何有效地读取csv数据的文档.设置好csv阅读器数据对象后,可以使用以下内容存储数据:
data = [ map( float, row) for row in csvreader]
Run Code Online (Sandbox Code Playgroud)