python读书笔记—读写文件

一、读写文件
#1、调用open()函数,返回一个File对象;
#2、调用File对象的read()或write()方法;
#3、调用File对象的close()方法,关闭该文件。
>>>baconFile = open('bacon.txt', 'w') #以写模式打开bacon,如果原本有该文件,会被覆盖,没有会创建一个新的文件。
>>>baconFile.write('Hello World!\n') #添加换行,将光标移到下一行
13
>>>baconFile.write('Bacon is not a vegetable.\n')
26
>>>baconFile.close()

>>>baconFile = open('bacon.txt', 'a') #以添加模式打开文件,往原始文件添加内容,如果没有该文件会创建一个文件。
>>>baconFile.write('Yes, you are right.\n')
20
>>>baconFile.close()

>>>baconFile = open('bacon.txt') #以读模式打开文件,返回一个File对象
>>>baconFile.read() #返回File对象的内容
'Hello World!\nBacon is not a vegetable.\nYes, you are right.\n'

>>>baconFile = open('bacon.txt')
>>>baconFile.readlines() #按行读取File对象的内容,返回一个字符串列表.
['Hello World!\n', 'Bacon is not a vegetable.\n', 'Yes, you are right.\n']

二、用shelve模块保存变量
利用shelve模块,可以将Python程序中的变量保存到二进制的shelf文件中,再次运行程序就可以从硬盘中恢复变量的数据。
>>>import shelve
>>>shelfFile = shelve.open('mydata')
>>>cats = ['Zophie','Pooka','Simon']
>>>shelfFile['cats'] = cats #将变量cats保存到shelfFile对象中
>>>shelfFile.close()
运行完后会有三个文件:mydata.bak\mydata.dat\mydata.dir。再次打开mydata文件后,可以之间调用里面的变量而无须重新创建变量。
>>>import shelve
>>>shelfFile = shelve.open('mydata')
>>>type(shelfFile)
shelve.DbfilenameShelf

>>>shelfFile['cats']
['Zophie', 'Pooka', 'Simon']

>>>list(shelfFile.keys())
['cats']

>>>list(shelfFile.values())
[['Zophie', 'Pooka', 'Simon']]

>>>shelfFile.close()

三、用pprint.pformat()函数保存变量
pprint.pformat()创建一个.py文件来保存基本数据类型变量(能编码为文本的),但不能保存诸如File对象。
>>>import pprint
>>>cats = [{'name':'Zophie','desc':'chubby'},{'name':'pooka','desc':'fluffy'}]
>>>pprint.pformat(cats)  #返回一个字符串
fileobj = open('myCats.py','w')
>>>fileobj.write('cats = '+ pprint.pformat(cats) + '\n') #将变量写入mycats.py,以后可以继续用
>>>fileobj.close()
运行后会生成一个myCat.py文件,导入该模块后可以直接使用该模块的对象。
>>>import myCats
>>>myCats.cats[0]
{'desc': 'chubby', 'name': 'Zophie'}

>>>myCats.cats[0]['name']
'Zophie'



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值