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

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

在当前目录下存放图片并查看图片

python根据文件二进制头判断rar文件_文本文件


python根据文件二进制头判断rar文件_文本文件_02


非纯文本读取的方法

python根据文件二进制头判断rar文件_创建文件_03


python根据文件二进制头判断rar文件_打开文件_04

二、上下文管理器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)

python根据文件二进制头判断rar文件_文本文件_05


python根据文件二进制头判断rar文件_打开文件_06


练习题

创建文件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()   关闭文件程序

python根据文件二进制头判断rar文件_创建文件_07