在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'>
来源:CSDN
作者:小铁Mia
链接:https://blog.csdn.net/qq_42730785/article/details/104047991