一、二进制文件的操作参数
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() 关闭文件程序