我怎样才能有效地将数据保存到一个文件中(稍后我将绘制该文件)?
我从我的研究中得到这个:
#Open new data file
f = open("data2.txt", "w")
f.write( str(yEst) ) # str() converts to string
f.close()
到目前为止,我的代码如下:
for i in drange2(0, 2*math.pi + 0.0634665182543392 , 0.0634665182543392):
for x in range(1,N+1):
yEst = yEst + a * cos(x* i)
#print yEst
f.write( str(yEst) ) # str() converts to string
yEst=0
f.close()
现在,当我打开我的文件“data2.txt
”时,我无法读取数据,因为它不是“有组织的”。如何使用f.write( str(yEst) )
转到下一行,以便在“data2.txt”文件中包含“yEst”数据的列?
提前感谢您的考虑:)
PS:yEst看起来像(在data2.txt文件中):48.901347147148.605785828748.114506165947.429486 ..
,我希望它是列:->
48.9013471471 (new line)
48.6057858287 (new line)
48.1145061659 (new line)
47.4294863684
etc ..
Python有三种内置的持久化数据的方法:
pickle
将对象序列化为文件sqlite
-一个嵌入式SQL数据库,它受到许多ORM系统的支持(对于对象存储来说,除了pickle
之外,还有一个很好的选择);以及json
/yaml
-用于web的序列化,具有基本的数据结构和类型。你是说你希望每一个数据点都在自己的行上,像这样吗?
如果是的话,那么你可能想试试这样的方法:
首先,要将每个数据点写到行中,它必须在循环中-这就是为什么我在调用
f.write
之前在行中添加了额外的空间。我添加的第二件事是
+ "\n"
-这将在行尾添加新行字符。你可以随便换!举几个例子:f.write( str(yEst) + " " )
将在每个数据点后添加一个空格:f.write( str(yEst) + "|" )
将在每个数据点后添加一个管道字符:另一方面,如果您希望将数据保存为数组,请尝试以下操作:
然后,可以对数组进行迭代,如下所示:
或者
您需要pickle进行数据序列化。
相关问题 更多 >
编程相关推荐