一 .open函数和文件对象
open()是针对文件操作的内置函数,返回一个文件对象,使用文件对象可以调用各种关于文件操作的方法。
文件对象可以理解为代表操作的文件,其中存在文件指针,用于指向文件中的内容。文件指针会随着文件的关闭而释放
二.文件基本操作
(1)
创建'myFile.txt'文件
写入‘Python’内容
>>> file=open('f:/myFile.txt','w')
>>> file.write('Python')
6
>>> file.close()
>>>
(2)
读取(1)中文件内容 并输出
>>> file=open('f:/myFile.txt','r')
>>> file.read()
'Python'
>>> file.close()
在上述代码中
w:以写入的方式打开文件,覆盖原来的内容,如果文件不存在就创建一个新的
r:以只读的方式打开文件,该文件必须存在,否则抛出异常
write():是file对象的写入方法,参数为字符串。即向文件写入字符串内容,返回写入文件的字节数
当返回为0时,表明向文件写入0个字节
read([size]):是file对象的读取方法,可选参数设置一次性读取字节数
close():关闭文件
(3)文件读取的几个方法
在上述代码中,我们使用了read()方法进行文件读取,其实还有readline()和readlines()
readline()用法:
现有文件‘myFile2.txt’内容如下:
余生乾隆癸未冬十一月二十有二日,正值太平盛世
且在衣冠之家,居苏州沧浪亭畔。
天之厚我,可谓至矣。东坡云:“事如春梦了无痕”
苟不记之笔墨,未免有辜彼苍之厚。
因思关雎冠三百篇之首,故列夫妇于首卷
余以次递及焉。
所愧少年失学,稍识之无,不过记其实情实事而已
若必考订其文法,是责明于垢鉴矣。
使用readline()读取之,该方法每次只读一行
>>> file=open('f:/myFile2.txt','r',encoding='utf-8')
>>> file.readline()
'\ufeff余生乾隆癸未冬十一月二十有二日,正值太平盛世\n'
>>> file.readline()
'且在衣冠之家,居苏州沧浪亭畔。\n'
>>> file.close()
readlines()用法:
readlines()和readline()区别在哪里?
>>> file=open('f:/myFile2.txt','r',encoding='utf-8')
>>> file.readlines()
['\ufeff余生乾隆癸未冬十一月二十有二日,正值太平盛世\n',
'且在衣冠之家,居苏州沧浪亭畔。\n',
'天之厚我,可谓至矣。东坡云:“事如春梦了无痕”\n',
'苟不记之笔墨,未免有辜彼苍之厚。\n', '因思关雎冠三百篇之首,故列夫妇于首卷\n',
'余以次递及焉。\n', '所愧少年失学,稍识之无,不过记其实情实事而已\n',
'若必考订其文法,是责明于垢鉴矣。\ufeff']
>>> file.close()
readlines()一次性读取内容,生成并返回成一个列表,即文件内容被全部读取,然后按行切割成元素,将其生成列表并返回
(4)文件的写入方法
write()在上述已经讲过,将字符串参数写入到文件中,注意其文件打开方式必须包含写入(‘w’,'a','w+'.....),还有writelines()方法,其参数不是字符串,而是字符串序列
>>> file=open('f:/myFile2.txt','a',encoding='utf-8')
>>> strlist=['\n\n\n------','[清] 沈复',]
>>> file.writelines(strlist)
>>> file.close()