Chinaunix
标题:
关于类型转化和读写文件的
[打印本页]
作者:
niexining
时间:
2007-05-31 17:47
标题:
关于类型转化和读写文件的
a=[3,4,5,6,7]
fd=open('a.txt','w')
fd.write(str(a))
fd.close()
现在我要把a读回来,该怎么办?
作者:
Hex
时间:
2007-05-31 17:59
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]
作者:
Hex
时间:
2007-05-31 18:01
补充:我这个方法只限于a为整数或浮点数。若为浮点数,需要将最后一行的int(x)换成float(x)
作者:
niexining
时间:
2007-05-31 18:12
标题:
回复 3楼 Hex 的帖子
谢谢Hex!
但是如果a=[[1,2,3],[4,5,6]]呢?
其实我想问的是 a 是任意数组,有可能是多维的。
python可不可以不用这些复杂的字符串操作来直接做到这一点呢?
作者:
niexining
时间:
2007-05-31 18:26
标题:
回复 4楼 niexining 的帖子
自己搞定了
import numarray
fd=open('a.txt','r')
t=fd.read()
a=numarray.array(t, numarray.Int32)
谢谢留意我的帖子,
谢谢Hex教了我一招字符串操作方法!
作者:
limodou
时间:
2007-06-01 13:23
如果是想实现对象的序列化,可以考虑使用pickle或cPickle模块。
作者:
niexining
时间:
2007-06-02 18:26
对啊, 我想要的就是这个pickle的功能 !
我编了个行列式算法程序,要用到全排列,而我用的全排列算法是很慢的,
我就想:如果能全排列预先弄好,存到一个文件里到时候读取,而不用程序运行时再产生,就会
好多了,就是用空间来赢取时间,毕竟我的硬盘空间是很大的 。
在matlab上,保存数据是很容易的,用save和load命令就可以了。原来,python中的pickle不仅能保存数,还能保存几乎一切对象。
查了一下用法:
写出如下程序搞定:
# 试用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
复制代码
感谢!
作者:
yeqiufeng
时间:
2007-06-04 21:10
共同学习。收藏,收藏。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2