关于类型转化和读写文件的

关于类型转化和读写文件的

a=[3,4,5,6,7]
fd=open('a.txt','w')
fd.write(str(a))
fd.close()

现在我要把a读回来,该怎么办?
fd=open('a.txt')
s=fd.read()
a=s[1:len(s)-1].split(',')
[ int(x) for x in a]

print a


[3, 4, 5, 6, 7]
补充:我这个方法只限于a为整数或浮点数。若为浮点数,需要将最后一行的int(x)换成float(x)
谢谢Hex!
但是如果a=[[1,2,3],[4,5,6]]呢?
其实我想问的是 a 是任意数组,有可能是多维的。
python可不可以不用这些复杂的字符串操作来直接做到这一点呢?
自己搞定了

import numarray
fd=open('a.txt','r')
t=fd.read()
a=numarray.array(t, numarray.Int32)

谢谢留意我的帖子,
谢谢Hex教了我一招字符串操作方法!
如果是想实现对象的序列化,可以考虑使用pickle或cPickle模块。
对啊, 我想要的就是这个pickle的功能 !

我编了个行列式算法程序,要用到全排列,而我用的全排列算法是很慢的,
我就想:如果能全排列预先弄好,存到一个文件里到时候读取,而不用程序运行时再产生,就会
好多了,就是用空间来赢取时间,毕竟我的硬盘空间是很大的 。

在matlab上,保存数据是很容易的,用save和load命令就可以了。原来,python中的pickle不仅能保存数,还能保存几乎一切对象。

查了一下用法:

写出如下程序搞定:

[Copy to clipboard] [ - ]
CODE:
# 试用pickle模块
import cPickle as pickle
b=56
a=[[2,'a',1],[4,b,4+b]]
fd=file('temp.txt','wb')
pickle.dump(a,fd,True)
fd.close()
fd2=file('temp.txt','rb')
a2=pickle.load(fd2)
print a2

感谢!
共同学习。收藏,收藏。