8.2利用python读写文件

梦想的初衷 提交于 2020-01-21 01:07:38

在python中,读写文件有3个步骤:
1.调用open( )函数,返回一个File对象,打开文件。
2.调用File对象的read( )或write( )方法,进行读写操作。
3.调用File对象的close( )方法,关闭该文件。

读取文件

>>> >>> test1File = open('C:\\Users\\Administrator\\Desktop\\testdir\\test1.txt')   #打开文件
>>> test1Content=test1File.read()    #读取文件
>>> print(test1Content)           #打印出文件内容
Hello weorld!
Hello,Xiaotie!

调用readlines( )逐行读取文件。每个字符串就是文本中的每一行,除了最后一行,每行以一个换行字符\n结束。

>>> test1File = open('C:\\Users\\Administrator\\Desktop\\testdir\\test1.txt')
>>> test1Content=test1File.readlines()
>>> print(test1Content)
['Hello weorld!\n', 'Hello,Xiaotie!']

写入文件

write()方法不会像print( )函数那样,在字符串的末尾自动添加换行字符,必须要自己去添加。

>>> baconFile=open('bacon.txt','w')     #以写模式打开文件,由于文件bacon.txt不存在,python自动创建新的空文件bacon.txt
>>> baconFile.write('Hello world!\n')         #写入文件内容,返回写入的文件字符个数,包括换行符。
13
>>> baconFile.close()        #关闭文件               
>>> baconFile=open('bacon.txt','a')          #以添加模式打开文件
>>> baconFile.write('Bacon is not a vegetable')    #写入内容,之前的内容不会被覆盖。
24
>>> baconFile.close()        #关闭文件
>>> baconFile=open('bacon.txt')       #以默认的读取模式打开文件
>>> content=baconFile.read()           #读取文件
>>> baconFile.close()                #关闭文件
>>> content               #打印出文件内容
'Hello world!\nBacon is not a vegetable'

用shelve模块保存变量

利用shelve模块,可以将python程序中的变量保存到二进制的shelf文件中。这样,程序就可以从硬盘中恢复变量的数据。shelve模块让你在程序中添加“保存”和“打开”功能。

>>> import shelve     #导入shelve模块
>>> shelfFile=shelve.open('mydata')      #调用shelve.open()并传入文件名,然后将返回值保存在变量shelfFile中
>>> cats=['maomao','miaomiao','amiao']
>>> shelfFile['cats']=cats       #将保存在变量shelfFile中的文件名mydata修改为cats
>>> shelfFile.close()          #关闭文件

打开shelf文件,检查数据是否正确存储,输入shelfFile[‘cats’]将返回之前保存的同一列表,确认该列表得到了正确存储,然后调用close( )关闭文件。

>>> shelfFile=shelve.open('mydata')
>>> type(shelfFile)           #文件类型
<class 'shelve.DbfilenameShelf'>
>>> shelfFile['cats']
['maomao', 'miaomiao', 'amiao']
>>> shelfFile.close()

shelf和字典一样有keys( )和values()方法,返回shelf中键和值的类似列表的值。因为这些方法返回类似列表的值,而不是真正的列表,所以应该将他们传递给list()列表,取得列表的形式。

>> shelfFile=shelve.open('mydata')
>>> list(shelfFile.keys())
['cats']
>>> list(shelfFile.values())
[['maomao', 'miaomiao', 'amiao']]
>>> shelfFile.close()

用pprint.pformat()函数保存变量

pprint.pprint()函数将列表或字典中的内容“漂亮打印”到屏幕。而pprint.pformat()函数将返回同样的文本字符串,但不是打印它。

>>> import pprint            #导入pprint模块
>>> cats=[{'name':'miaomiao','desc':'aa'},   {'name':'maomao','desc':'bb'}]
>>> fileObj=open('myCats.py','w')     #将cats中的列表写入文件,并将其命名为myCats.py
>>> fileObj.write('cats='+pprint.pformat(cats)+'\n')   
76
>>> fileObj.close()

由于python脚本本身也是带有.py文件扩展名的文本文件,所以你的python程序甚至可以生成其他python程序,然后可以将这些文件导入到脚本中。

>>> myCats.cats
[{'desc': 'aa', 'name': 'miaomiao'}, {'desc': 'bb', 'name': 'maomao'}]
>>> myCats.cats[0]
{'desc': 'aa', 'name': 'miaomiao'}
>>> myCats.cats[0]['name']
'miaomiao'
>>> type(myCats.cats[0])
<class 'dict'>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!