python open学习
open()函数
一般情况下,使用open()函数时只需要调入文件名参数,而不添加其它任何参数,就可以获取文件内容。相反,如果要向文件中添加信息,就必须制定一个模式参数,用来声明它准备做什么,这个模式参数才是open()的灵魂。以下下代码是open()函数的使用语法:
open(name[,mode[,buffering]])
其中,name参数表示需要打开的文件名称,mode是打开模式,
open()函数的第三个参数用来控制文件的缓冲,默认值为0,
表示不缓冲,设置为1就会有缓冲。
也就是说当我们使用open()函数打开文件时,程序首先会查询open()函数的文件名称,然后才是文件的模式。文件模式是相当重要的一个参数。默认情况下,该函数的默认模式参数为r,用来只读打开文件,如果读取特殊文件(例如视频或者图片文件),那么必须使用b模式。
文件格式
t:以文本格式打开文件(默认)。一般用于文本文件,如:txt。
b:以二进制格式打开文件。一般用于非文本文件,如:图片。
这一类参数可以与其它的模式参数组合使用,用于指定打开文件的格式。
读写模式
r:以只读方式打开文件(默认模式)。文件指针定位在文件头的位置。如果文件不存在会报错。
w:以只写方式打开文件。如果文件存在,则打开文件,清空文件内容,从文件头开始编辑;如果文件不存在,则创建新文件,打开编辑。
a:以追加方式打开文件,同样是只写,不允许进行读操作。如果文件存在,则打开文件,将文件指针定位到文件尾。因此,新的内容是追加在已有内容之后。如果文件不存在,则创建新文件进行写入。
+:打开一个文件进行更新(可读写)。注意:该模式不能单独使用,需要与r/w/a组合使用。文件指针的位置取决于另一个组合参数。
组合模式
r+:打开一个文件用于读写。如果文件存在,则打开文件,将文件指针定位在文件头,新写入的内容在原有内容的前面;如果文件不存在会报错。
w+:打开一个文件用于读写。如果文件存在,则打开文件,清空原有内容,进入编辑模式;如果文件不存在,则创建一个新文件进行读写操作。
a+:以追加模式打开一个文件用于读写。如果文件存在,则打开文件,将文件指针定位在文件尾,新写入的内容在原有内容的后面;如果文件不存在,则创建一个新文件用于读写。
所有上面这些模式默认都是t——文本模式,如果要以二进制模式打开,需要加上参数b,如:rb、rb+、wb、wb+、ab、ab+。
在了解了各种模式参数的具体用法后,根据您要打开的文件类型,以及打开文件后的操作类型来选用正确的mode参数即可。
read(),readline(),readlines()
with open(r'C:\Users\Administrator\Desktop\python学习1.txt','a') as f:
f.write('这是第一句测试!')
f.write('\n')
f.write('这是第二句测试!')
with open(r'C:\Users\Administrator\Desktop\python学习1.txt') as f:
print(f.read()) #read(size) size表示读取文件的大小 不写为读取全部!
#输出为:
这是第一句测试!
这是第二句测试!
with open(r'C:\Users\Administrator\Desktop\python学习1.txt','w') as f:
f.write('这是第一句测试!')
f.write('\n')
f.write('这是第二句测试!')
with open(r'C:\Users\Administrator\Desktop\python学习1.txt') as f:
print(f.readline()) #输出一行字符,可以理解为遇到换行符终止
#输出为:这是第一句测试!
with open(r'C:\Users\Administrator\Desktop\python学习1.txt','w') as f:
f.write('这是第一句测试!')
f.write('\n')
f.write('这是第二句测试!')
with open(r'C:\Users\Administrator\Desktop\python学习1.txt') as f:
print(f.readlines())
#输出为:['这是第一句测试!\n', '这是第二句测试!']
#以列表的格式返回全部文本,文本的第几行对应列表的第几个元素!
write和writelines
file.write(str)的参数是一个字符串,就是你要写入文件的内容.
file.writelines(sequence)的参数是序列,比如列表,它会迭代帮你写入文件。和readlines相反!