python中非纯文本文件(2进制文件)及上下文管理器with的操作方法

一、二进制文件的操作参数

rb  以二进制格式打开文件,并且采用只读的模式,文件的指针将会放在文件的开头
一般用于非文本文件,如图片,声音等(文件必须存在)
rb+  以二进制格式打开文件,并且采取读写模式。文件指针将会在文件开头
一般用于非文本文件,如图片,声音等(文件必须存在)
wb  以二进制格式打开文件,并且采取只写模式。一般用于非文本文件,如图片,声音等(文件存在覆盖内容否则创建新文件)
wb+  以二进制格式打开文件,并且采取读写模式,一般用于非文本文件,如图片,声音等(文件存在覆盖内容否则创建新文件)
ab   以二进制格式打开文件,并且采取追加模式,文件存在,文件指针将放在尾
若文件不存在则会创建文件,创建新文件用于读写
ab+   以二进制格式打开文件,并且采取追加模式。文件存在,文件指针将放在尾部
若文件不存在则会创建文件,创建新文件用于读写

在当前目录下存放图片并查看图片
在这里插入图片描述
在这里插入图片描述
非纯文本读取的方法
在这里插入图片描述
在这里插入图片描述

二、上下文管理器with操作方法
使用f = open(’/wenjian/passwd’)打开读取文件后都需在程序末尾使用f.close()来关闭文件,使用此方法操作繁琐一旦忘记关闭文件执行程后就会报错使,所以with open(’/wenjian/passwd’) as f:打开文件,执行操作结束会自动关闭文件程序。

with open('/wenjian/passwd') as f:    使用with方式读取文件,不需要再结尾关闭文件
    print(f.read())
with open('/wenjian/passwd') as f,\    读取两个文件\换行
    open('/wenjian/passwd1','w+') as f1:   /wenjian/passwd1文件不存在     
    f1.write(f.read())           向f1写入f的读取内容也就是passwd文件内容
    f1.seek(0,0)           写入后指针在最后位置,需要移动到首行
    print(f1.read())    打印内容
#python2当中读取和复制必须分开
with open('/tmp/passwd') as f1:
    content = f1.read()
with open('/tmp/passwd1','w+') as f2:
    f2.write(content)

在这里插入图片描述
在这里插入图片描述
练习题
创建文件data.txt,文件总共10000行,每行都是一个1-100之间的整数

import random   导入随机函数
f = open('data.txt','w+')     创建文件
for i in range(10000):     10000行
    f.write(str(random.randint(1,100)) + '\n')   循环遍历1-100之间的数字,str转换为字符串可以连接换行符
f.seek(0,0)  每写入一行数字都驶指针位于首行才会有打印结果
print(f.read())   打印读取的文件内容
f.close()   关闭文件程序

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值