python实例⼤全-Python⽂件操作实例⼤全
⽬录:
⼀、打开⽂件
⼆、⽂件对象的⽅法
三、⽂件的关闭
四、⽂件的读取和定位
五、⽂件的写⼊
六、课时28课后习题及答案
⼤多数程序都遵循着:输⼊->处理->输出的模型,⾸先接受输⼊数据,然后按照要求进⾏处理,最后输出结果。现在我们不再只满⾜使⽤input接受⽤户的输⼊,使⽤print输出处理的结果了。我们迫切想要关注到系统的⽅⽅⾯⾯,⽤代码⾃动分析系统的⽇志,分析的结果可以保存为⼀个新的⽇志,甚⾄可以跟外⾯的世界进⾏交流。
在编写程序的时候,操作系统为了更快的做出响应,把所有当前的数据都放在内存中。但内存有个天⽣的不⾜,⼀断点就没
戏,emmmm。ctrl + s 学起,保存数据!
****************
⼀、打开⽂件
****************
在Python中,使⽤open()这个函数来打开⽂件并返回⽂件对象:help(open)
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
open()这个函数是有很多参数的,但作为初学者的我们,只需要先关注第⼀个参数和第⼆个参数即可。第⼀个参数是传⼊的⽂件名,如果只有⽂件名,不带路径的话,那么python会在当前⽂件夹中去到该⽂件并打开。如果要打开的⽂件不存在呢?那就要看第⼆个参数了,第⼆个参数指定打开⽂件的模式:
打开模式 执⾏操作'r'以只读⽅式打开⽂件(默认)'w'以写⼊的⽅式打开⽂件,会覆盖已存在的⽂件'x'如果⽂件已经存在,使⽤此模式打开将引发异常'a'以写⼊模式打开,如果⽂件存在,则在末尾追加写⼊'b'以⼆进制模式打开⽂件't'以⽂本模式打开(默认)'+'可读写模式(可添加到其他模式中使⽤)'U' 通⽤换⾏符⽀持
使⽤open成功打开⼀个⽂件后,它会⾃动返回⼀个⽂件对象,拿到这个⽂件对象,就可以读取或者修改这个⽂件:
>>> #先将⽂件放到Python的根⽬录下(如:C:Python34)
>>> f = open("")>>>
没有消息就是好消息,表⽰我们的⽂件被成功打开了。
***********************
⼆、⽂件对象的⽅法
***********************
打开完⽂件并取得⽂件对象之后,就可以利⽤⽂件对象的⼀些⽅法对⽂件进⾏读取或修改等操作。如下表列举了⼀些⽂件对象的⽅法:
⽂件对象⽅法 执⾏操作
f.close() 关闭⽂件
f.write(str) 将字符串str写⼊⽂件
f.writelines(seq) 向⽂件写⼊字符串序列seq,seq应该是⼀个返回字符串的可迭代对象
f.seek(offset,from) 在⽂件中移动⽂件指针,从from(0代表⽂件起始位置,1代表当前位置,2代表⽂件末尾)偏移offset个字节
******************
三、⽂件的关闭
******************
close()⽅法⽤于关闭⽂件。Python拥有垃圾回收机制,会在⽂件对象的引⽤计数降⾄零的时候⾃动关闭⽂件,所以在Python编程⾥,如果忘记关闭⽂件并不会造成内存泄露那么危险的结果。
但并不是说就可以不关闭⽂件,如果你对⽂件进⾏了写⼊操作,那么应该在完成写⼊之后关闭⽂件。因为Python可能会缓存你写⼊的数据,如果中途发⽣类似断电之类的事故,那么缓存的数据根本就不会写⼊到内存中。所以,安全起见,要养成使⽤完⽂件后⽴刻关闭的好习惯。
bootstraptable隐藏某一行**************************
四、⽂件的读取和定位
**************************
⽂件的读取⽅法有很多种,可以使⽤⽂件对象的read()和readline()⽅法,也可以直接list(f)或者直接使⽤迭代来读取。read()是按字节为单位读取,如果不设置参数,那么会全部读取出来,⽂件的指针指向末尾。tell()⽅法可以告诉你当前⽂件指针的位置:
>>&ad()'⼩客服:⼩甲鱼,今天有客户问你有没有⼥朋友?n⼩甲鱼:咦??n⼩客服:我跟她说你有⼥朋友了!n⼩甲鱼:。。。。。。n⼩客服:她让你分⼿后考虑下她!然后我说:"您要买个优盘,我就帮您留意下~"n⼩甲鱼:然后呢?n⼩客服:她买了两个,说发⼀个货就好~n⼩甲鱼:呃。。。。。。你真⽜!n⼩客服:那是,谁让我是鱼C最可爱⼩客服嘛~n⼩甲鱼:下次有⼈想调戏你我不阻⽌~n⼩客服:
滚n================================================================================n⼩客服:⼩甲鱼,有个好评很好笑哈。n⼩甲鱼:哦?n⼩客服:"有了⼩甲鱼,以后妈妈再也不⽤担⼼我的学习了~"n⼩甲鱼:哈哈哈,我看到丫,我还发微博了呢~n⼩客服:嗯嗯,我看了你的微博丫~n⼩甲鱼:哟西~n⼩客服:那个有条回复"左⼿拿著⼩甲⿂,右⼿拿著打⽕機,哪裡不會點哪裡,so easy ^_^”n⼩甲
鱼:T_Tn================================================================================n
⼩客服:⼩甲鱼,今天⼀个会员想你n⼩甲鱼:哦?什么事?n⼩客服:他说你⼀个学⽣⽉薪已经超过12k了!!n⼩甲鱼:哪⾥的?n⼩客服:上海的n⼩甲鱼:那正常,哪家公司?n⼩客服:他没说呀。n⼩甲鱼:哦n⼩客服:⽼⼤,为什么我⼯资那么低啊??是时候涨涨⼯资了!!n⼩甲鱼:啊,你说什么?我在外边呢,这⾥好吵吖。。。。。。n⼩客服:滚'
>>&ll()1129
刚才提到的⽂件指针是啥?可以认为它是⼀个”书签",起到定位的作⽤。使⽤seek()⽅法可以调整⽂件指针的位置。
seek(offset,from)⽅法有两个参数,表⽰从from(0代表⽂件的起始位置,1代表当前位置,2代表⽂件末尾)偏移offset字节。因此将⽂件指针设置到起始位置,使⽤sek(0,0)即可:
>>&ll()1129
>>>f.seek(0,0)
0>>> f.read(5)'⼩客服:⼩'
>>&ll()9
(注:因为⼀个中⽂字符占⽤2个字节的空间,所以4个中⽂加上1个英⽂冒号刚好到位置9)
readline()⽅法⽤于在⽂件中读取⼀整⾏,就是从⽂件指针的位置向后读取,直到遇到换⾏符(n)结束:
>>&adline()'甲鱼,今天有客户问你有没有⼥朋友?n'
此前介绍过列表的强⼤,这不,也可以将整个⽂件的内容放在列表中:
idea如何使用>>>list(f)
['⼩甲鱼:咦??n', '⼩客服:我跟她说你有⼥朋友了!n', '⼩甲鱼:。。。。。。n', '⼩客服:她让你分⼿后考虑下她!然后我说:"您要买个优盘,我就帮您留意下~"n', '⼩甲鱼:然后呢?n', '⼩客服:她买了两个,说发⼀个货就好~n', '⼩甲鱼:呃。。。。。。你真⽜!n', '⼩客服:那是,谁让我是鱼C最可爱⼩客服嘛~n', '⼩甲鱼:下次有⼈想调戏你我不阻⽌~n', '⼩客服:滚n',
'================================================================================n', '⼩客服:⼩甲鱼,有个好评很好笑哈。n', '⼩甲鱼:哦?n', '⼩客服:"有了⼩甲鱼,以后妈妈再也不⽤担⼼我的学习了~"n', '⼩甲鱼:哈哈哈,我看到丫,我还发微博了呢~n', '⼩客服:嗯嗯,我看了你的微博丫~n', '⼩甲鱼:哟西~n', '⼩客服:那个有条回复"左⼿拿著⼩甲⿂,右⼿拿著打⽕機,哪裡不會點哪裡,
so easy ^_^”n', '⼩甲鱼:T_Tn',
'================================================================================n', '⼩客服:⼩甲鱼,今天⼀个会员想你n', '⼩甲鱼:哦?什么事?n', '⼩客服:他说你⼀个学⽣⽉薪已经超过12k了!!n', '⼩甲鱼:哪⾥的?n', '⼩客服:上海的n', '⼩甲鱼:那正常,哪家公司?n', '⼩客服:他没说呀。n', '⼩甲鱼:哦n', '⼩客服:⽼⼤,为什么我⼯资那么低啊??是时候涨涨⼯资
了!!n', '⼩甲鱼:啊,你说什么?我在外边呢,这⾥好吵吖。。。。。。n', '⼩客服:滚']
对于迭代读取⽂本⽂件中的每⼀⾏,也许会这样写:
>>>f.seek(0,0)
0>>> lines =list(f)>>> for each_line inlines:print(each_line)
这样写没有错,但是效率不⾼。因为⽂件对象本⾝是⽀持迭代的,所以没必要绕圈⼦,直接使⽤for语句把内容迭代读取出来即可:
web前端入门视频>>>f.seek(0,0)
0>>> for each_line inf:print(each_line)
⼩客服:⼩甲鱼,今天有客户问你有没有⼥朋友?
⼩甲鱼:咦??
⼩客服:我跟她说你有⼥朋友了!
荣耀终于迎来鸿蒙os系统⼩甲鱼:。。。。。。
⼩客服:她让你分⼿后考虑下她!然后我说:"您要买个优盘,我就帮您留意下~"⼩甲鱼:然后呢?
⼩客服:她买了两个,说发⼀个货就好~⼩甲鱼:呃。。。。。。你真⽜!
⼩客服:那是,谁让我是鱼C最可爱⼩客服嘛~⼩甲鱼:下次有⼈想调戏你我不阻⽌~⼩客服:
滚================================================================================⼩客服:⼩甲鱼,有个好评很好笑哈。
python基础代码实例⼩甲鱼:哦?
⼩客服:"有了⼩甲鱼,以后妈妈再也不⽤担⼼我的学习了~"⼩甲鱼:哈哈哈,我看到丫,我还发微博了
呢~⼩客服:嗯嗯,我看了你的微博丫~⼩甲鱼:哟西~⼩客服:那个有条回复"左⼿拿著⼩甲⿂,右⼿拿著打⽕機,哪裡不會點哪裡,so easy^_^”
⼩甲鱼:T_T================================================================================⼩客服:⼩甲鱼,今天⼀个会员想你
⼩甲鱼:哦?什么事?
android应用开发招聘⼩客服:他说你⼀个学⽣⽉薪已经超过12k了!!
⼩甲鱼:哪⾥的?
⼩客服:上海的
⼩甲鱼:那正常,哪家公司?
⼩客服:他没说呀。
⼩甲鱼:哦
⼩客服:⽼⼤,为什么我⼯资那么低啊??是时候涨涨⼯资了!!
⼩甲鱼:啊,你说什么?我在外边呢,这⾥好吵吖。。。。。。
⼩客服:滚
******************
五、⽂件的写⼊
******************
如果要写⼊⽂件,请确保之前的打开模式有"w’或"a’,否则会出错:
>>> f = open("")>>> f.write("这是⼀段待写⼊的数据")
Traceback (most recent call last):
File"", line 1, in f.write("这是⼀段待写⼊的数据")
io.UnsupportedOperation:notwritable>>>f.close()>>> f = open("","w")>>> f.write("这是⼀段待写⼊的数据")10 >>> f.close()
然⽽,⼀定要注意的是:使⽤"w’模式写⼊⽂件,此前的⽂件内容会被全部清除!!如下图:
*******************************
六、课时28课后习题及答案
*******************************
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论