Python文件操作

1.打开文件

在Python中打开文件使用open函数,可以打开一个存在的文件,或者创建一个文件。

语法格式:

open.('文件名称','打开模式') ##File,mode

打开文件时,需要指定文件路径和以什么方式打开文件。

w: 只能写,不能读,文件存在的时候回清空文件后再写入内容;文件不存在的时候会创建文件后写入内容。

# 以字符串的形式来写数据
fobj = open('./Test.txt','w',encoding='utf-8')
## w:打开一个文件只用于写入,如果该文件已经存在则将其覆盖,如果不存在,则创建这个文件
# 开始操作 读/写操作
fobj.write('如果你遇到从前的我')
fobj.write('就请把他带回来')
fobj.close() ##保存+关闭文件
# 以二进制的形式来写数据
## wb:以二进制格式打开一个文件只用于写入,如果该文件已经存在则将其覆盖,如果不存在,则创建这个文件
fobj = open('./Test_1.txt', 'wb')  # str->bytes
fobj.write('在乌云和大海之间'.encode('utf-8'))  ##以二进制的字节来写文件
fobj.close()
## a:打开一个文件用于追加,如果该文件已存在,文件指针将会放在文件的结尾
# 也就是说,新的内容将会被写入到已有的内容之后。如果该文件不存在,创建新文件进行写入。

# fobj = open('./Test.txt', 'a')  # 表示追加,不会覆盖文件
# fobj.write('在乌云和大海之间\r\n')  ##以二进制的字节来写文件 用a的时候不需要指定encode
# fobj.write('海燕像黑色的闪电\r\n')
# fobj.close()
## ab:以二进制打开一个文件用于追加,如果该文件已存在,文件指针将会放在文件的结尾
fobj = open('./Test.txt', 'ab')  # 表示追加,不会覆盖文件
fobj.write('在高傲地飞翔\r\n'.encode('utf-8'))  ##以二进制的字节来写文件 用a的时候不需要指定encode
fobj.close()

注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

2.读/写文件

执行如下读取的操作:

f=open('Test.txt','r')
print(f.read(12))    ##接12个字符的数据
print(f.read())    ##接着上面的读

执行结果如下:

读取一行的操作:

print(f.readline())

 

f=open('Test.txt','rb')
#
# print(f.read()) ##读取所有的数据
data=f.read() #读的二进制数据
print(data.decode('utf-8'))
##因为写的时候用的utf-8,所以解码可以转换成utf-8,不能转成gbk格式
f.close()###把文件对象给关闭掉
如果数据量很大,不关闭的话会造成计算机的文件对象不能释放,内存会泄漏;
于是就有了上下文管理 with
with语句,不管在处理文件过程中是否发生异常,都能保证with语句执行完毕后已经关闭打开的文件句柄。
# with上下文管理对象
# 优点:自动释放关联的对象
with open('Test.txt','r') as file_object:
    print(file_object.read())
    pass

with open('Test.txt', 'a') as file_object:
    file_object.write('今天天气不错\n')
    pass

小结

read r r+ rb r+ r r+ 只读 使用一般读取场景 rb rb+ 适用于 文件 图片 视频 音频等 write w w+ wb a ab w wb+ w+ 每次都会去创建文件 二进制读写的时候 要注意编码问题 a ab a+ 在原有文件的基础之后去追加(在文件指针的末尾去追加),并不会每次都创建一个新的文件

3.保存文件

4.关闭文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值