python写⼊⽂件wb_python读写⽂件
python 对⽂件的读写在程序开发中也是⾮常常见的操作,⽐如写⼊⼀些简单的系统⽇志、把爬⾍采集的数据写⼊到本地⽂件等等,今天我们聊聊 python 怎么去读写⼀个⽂件。
1、python 写⼊⽂件
# -*- coding:utf-8 -*-
#传统模式,不够安全,需要⼿动关闭⽂件资源
#如果在关闭⽂件之前程序异常终⽌,
#被打开的⽂件不能被关闭,占⽤系统资源
f = open('','w')
f.write('这种模式写⼊不够安全,请慎⽤')
f.close()
#推荐模式,即使程序异常终⽌
#也会⾃动关闭⽂件
#类似于 try catch
with open('','w') as f:
f.write('推荐使⽤这种模式')
open('','w'),'w' 表⽰以写的模式打开⽂件,在写之前要先到这个⽂件,如果⽂件不存在, python 则会先⾃动创建该⽂件,然后再写⼊内容。
注意程序写⼊的内容并不⼀定⽴刻就写⼊硬盘了,往往是先写⼊到内存中,然后再根据的系统的空闲时间慢慢从内存写⼊硬盘中,等到调⽤close ⽅法的时候才会确认把内存中剩下的数据写⼊到硬盘。
所以⼀旦我们忘记主动调⽤ close 来关闭⽂件的话,或者在程序写⼊⽂件的时候出现异常终⽌程序从⽽不会再继续往下执⾏ close ⽅法,就可能导致部分数据丢失,为了避免这种情况,我们推荐使⽤ with 这种⽅式来打开⽂件,使⽤ with 即不管是程序在完成对⽂件写⼊操作之后还是程序写⼊⽂件异常终⽌都会⾃动调⽤ close ⽅法来关闭⽂件。
# -*- coding:utf-8 -*-
#内容追加模式
with open('','a') as f:
f.write('不会覆盖已有内容')
如果重复对⼀个⽂件写⼊内容,会不会对已经存在的内容有影响呢,答案是会的。
python 的⽂件写模式分覆盖写和追加写。刚刚上⾯提到的 'w' 模式就是覆盖写,即每次以 'w' 模式打开⽂件都会先直接清空该⽂件,注意是只要⼀打开就会先清空即使你不写⼊任何内容。还有⼀种就是使⽤ 'a' 追加模式,这种模式不会清空⽂件中原有的内容,只会在原有内容后⾯继续追加新的内容。
2、python 读⽂件
# -*- coding:utf-8 -*-
#读⽂件,⼀次性读所有内容,适⽤⽂件⼤⼩较⼩
with open('','r') as f:
ad())
#读⽂件,循环读,每次只读指定⼤⼩的内容,适⽤⽂件⼤⼩较⼤
with open('','r') as f:
while True:
ad(2))
# 打开GBK⽂件
with open('','r',encoding='gbk') as f:
ad())
#按⾏读取内容
with open('','r') as f:
for line adlines():
print(line)
读⽂件和写⽂件类似,只不过是以读的模式打开⽂件,open('','r'),'r' 表⽰以只读模式打开⽂件,读模式打开⽂件需要确认⽂件已经存在,如果⽂件不存在程序会报不到⽂件的错误。
如果⽂件打开成功,接下来会调⽤ read ⽅法来⼀次性把⽂件的所有内容读到内存当中,最后再需要调⽤ close 来关闭⽂件。⽂件的读写操作完成之后都需要关闭⽂件,不然⼀直打开的⽂件会占⽤系统资源。
同样的,由于⽂件的读写过程中可能会出现异常,导致不能执⾏后⾯的 close ⽅法来关闭⽂件,所以跟上⾯提到的⽂件的写⼊⼀样,我们也推荐使⽤ with 来打开⽂件,总之,对于⽂件的读写操作,都推荐使⽤ with ⽅式来打开。
# -*- coding:utf-8 -*-
#读⽂件,循环读,每次只读指定⼤⼩的内容,适⽤⽂件⼤⼩较⼤python怎么读取文件中的数据
with open('','r') as f:
while True:
ad(2))
如果⼀个⽂件很⼤,有⼏⼗个 G ,那么把所有的内容⼀次性读到内存中肯定不现实,这时候我们可以循环读⽂件,每次只读指定⼤⼩的内容,read(size) 表⽰只读取 size 字节的数据。
# -*- coding:utf-8 -*-
#按⾏读取内容
with open('','r') as f:
for line adlines():
print(line)
也有的⽂件内容是按⾏写⼊的,⽐如常见的 config 配置⽂件,我们还可以使⽤ readline() 可以按⾏来读取内容,也可以把⽂件所有内容先按⾏读取最后放到⼀个数组 list 中返回。
# -*- coding:utf-8 -*-
# 打开GBK⽂件
with open('','r',encoding='gbk') as f:
ad())
实际上不同的⽂件会有不同的编码格式,上⾯我们讲的都是基于 utf-8 编码格式的⽂件,如果要打开⾮ utf-8 的⽂件,还需要使⽤
open('','r',encoding='gbk') 这种⽅式来指定⽂件的编码。
3、⼆进制⽂件读写
我们上⾯讲的都是默认的⽂本⽂件,还有常见的图⽚、⾳视频等⼆进制⽂件怎么⽤ python 读写呢,其实只需要使⽤ 'rb' 和 'wb' 这两种模式就可以对⼆进制⽂件进⾏读写了。
# -*- coding:utf-8 -*-
#⼆进制读写⽂件
with open('tim.jpg','rb') as f:
ad())
with open('tim.jpg','wb') as f:
f.write()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。