Python 学习笔记【文件对象】

本文详细介绍了Python中文件操作的基本方法,包括如何存储和解析Python对象到文件,以及与JavaScript eval函数的对比。同时,强调了使用pickle库替代eval的安全性和优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

读写文件

>>> file = open("test.txt","w")
>>> file.write("hello test file\n")
>>> file.close()


>>> file = open("test.txt")
>>> file.readline()
'hello test file\n'


在文件中存储解析python对象
>>> x,y,z = 1,2,3
>>> s = 'kuma'
>>> d = {'a':4,'b':5}
>>> l = [6,7,8]
>>> file = open('datafile.txt','w')
>>> file.write(s+'\n')
>>> file.write('%s,%s,%s\n' % (x,y,z))
>>> file.write(str(l) + '$' + str(d) + '\n')
>>> file.close()
>>> 
>>> bytes = open('datafile.txt').read()
>>> bytes
"kuma\n1,2,3\n[6, 7, 8]${'a': 4, 'b': 5}\n"
>>> print bytes
kuma
1,2,3
[6, 7, 8]${'a': 4, 'b': 5}

eval函数,功能与javascript中的eval类似
>>> file = open('datafile.txt','r')
>>> line = file.readline()
>>> line
'kuma\n'
>>> line = file.readline()
>>> line
'1,2,3\n'
>>> line = file.readline()
>>> line
"[6, 7, 8]${'a': 4, 'b': 5}\n"
>>> parts = line.split('$')
>>> parts
['[6, 7, 8]', "{'a': 4, 'b': 5}\n"]
>>> objects = [eval(p) for p in parts]
>>> objects
[[6, 7, 8], {'a': 4, 'b': 5}]

不过和javascript中的eval一样,由于可以执行任何代码,所以eval并不安全,一般使用pickle库代替eval来存储python的原生对象
>>> file = open('datafile.txt','w')
>>> pickle.dump(d,file)
>>> file.close()
>>> file = open('datafile.txt')
>>> e = pickle.load(file)
>>> e
{'a': 4, 'b': 5}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值