的write⽅法有哪些参数_Python笔记13:⽂件操作三件套:
read,write,ek
主要内容:
⼩⽬标:掌握⽂件基本操作
主要内容:
⽂件基本操作;
⽂件读写;
编码格式;
如果看完这篇⽂章,你还是弄不明⽩⽂件;你来找我,我保证不打你,我给你发100的⼤红包。
先来看下⽂件:
⽂件种类很多,txt,csv,excel等
不同⽂件可以使⽤不同模块去进⾏操作
本⽂主要介绍⽂本⽂件操作。
1.⽂件操作基础
来看下基本操作:打开,读写,关闭代码实现:
#window下定义⽂件,使⽤r字符串fpath=r'E:'#open函数打开⽂件,返回⽂件对象f=open(fpath)#read⽅法,将⽂件读完lines=()print(lines)()
结果,⽂件内容:
thisistest
看似简单,但是⾥⾯有很多知识点,我们来看下。
2.⽂件打开
⼏个问题:
1.以什么⽅式打开
2.以什么编码格式打开
3.打开会有什么结果
2.1打开⽂件:open函数详解
open函数定义:
open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,clofd=True,opener=None,)
主要参数:
open参数
2.2mode详解
⽂件打开⽅式
组合⽅式参数说明:
⽂件打开⽅式
⼆进制⽅式:'wb','rb','wb+'...;如上⾯操作类,需要加b选项
2.3写⼊⽂件,发⽣了什么
使⽤w⽅式打开⽂件并写⼊汉字:测试
#window下定义⽂件,使⽤r字符串fpath=r'E:'#open函数打开⽂件,返回⽂件对象wds='测试'f=open(fpath,'w')(wds)print(f)()
结果:
_Wrappername='E:'mode='w'encoding='cp936'
结果中可以看到:
⽂件路径:name
⽂件权限:w
⽂件编码格式:cp936,window下默认编码格式,linux下⼀般为utf-8
写⼊⽂件内容是什么?
1.'测试'的编码格式为unicode,这个编码不能直接写⼊到f⽂件;
写⼊时候,将wds进⾏编码,编码格式为'cp936';
3.编码完成之后,再写⼊⽂件;
4.⽂件写有缓存,写⼊数据只是到了缓存中;什么时候同步到磁盘?
5.情况1:只有缓存中的数据到了⼀定数量同步⼀次;
6.情况2:调⽤flush⽅法强制写;情况3:调⽤clo⽅法关闭⽂件;
2.4编码格式问题
读取上⼀步写⼊的⽂件
#window下定义⽂件,使⽤r字符串fpath=r'E:'#open函数打开⽂件,只读,编码格式为cp936f=open(fpath)print(())()
结果:测试
使⽤utf-8编码格式打开
#window下定义⽂件,使⽤r字符串fpath=r'E:'#open函数打开⽂件,只读,编码格式为utf-8f=open(fpath,encoding='utf-8')print(())()
结果报错:
UnicodeDecodeError:'utf-8'codeccan'tdecodebyte0xb2inposition0:invalidstartbyte
纠正:使⽤⽂件对应的编码格式打开,window下cp936与gbk等通⽤;
遇到这种问题:打开⽂件编码格式与⽂件⾃⾝编码格式不匹配。
3.⽂件读取⽅式
⽅法说明:
read⽅法
3.1遍历⽂件
⽅式1:for循环遍历,推荐这种⽅式:
#window下定义⽂件,使⽤r字符串fpath=r'E:'#open函数打开⽂件,返回⽂件对象f=open(fpath)#逐⾏遍历⽂件forlineinf:print(line,end='')()
⽅式2:先将⽂件全部读出,然后逐⾏遍历
#window下定义⽂件,使⽤r字符串fpath=r'E:'#open函数打开⽂件,返回⽂件对象f=open(fpath)nes():print(line,end='')()
3.2如何理解:ne(size=-1,/)
如果⼀⾏数据长度⼤于size,读取size个返回
如果⼀⾏数据长度⼩于size,读取⾏尾返回
fpath=r'E:'f=open(fpath)#读取3个print(ne(3))()f=open(fpath)#读取10个print(ne(10))()
结果:
thithis
3.3⽂件写⼊
(text,/):写⼊text,返回写⼊长度
ines(lines,/):⼀次写⼊多⾏
():强制将缓存写⼊磁盘
⽂件换⾏:''⽰例:
fpath=r'E:'#open函数打开⽂件,返回⽂件对象wds='测试'f=open(fpath,'w')(wds)#换⾏('')#写⼊多⾏ines([wds+'']*2)()
结果:
测试测试测试
操作
⼀个问题:⽂件读取之后,如何再次重新读取?
⽅式1:关闭⽂件,再次读取
⽅式2:使⽤ek操作
(cookie,whence=0,/):改变⽂件读写位置,
cookie为偏移量
whence为指定位置
whence说明0⽂件起始位置1⽂件当前位置,window只⽀持cookie=02⽂件结尾,window只⽀持cookie=0
读取为例:
fpath=r'C:甥敳獲'f=open(fpath)#读取3个line=(3)print(line)#将读取位置设⽂件开头,向后偏移⼀个字节(1,0)line=(3)prin
结果:
thihis
总结:⽂件操作注意点:
打开⽅式,尤其适⽤w⽅式,注意⽂件会被清空
读写⼆进制⽂件,需要使⽤'rb'或者'wb'⽅式
读取⽂件推荐使⽤for遍历
⽂件写⼊注意换⾏使⽤''
本文发布于:2023-03-08 00:39:56,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678207197178491.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:三件套是什么.doc
本文 PDF 下载地址:三件套是什么.pdf
留言与评论(共有 0 条评论) |