#############################################################################################
python文件处理
文件分类 :文本文件 ,二进制文件
字节串类型: 一段数据的二进制内容
字符串与字节串相互转化方法 :
(1)普通的英文字符串常量可以在前面加 b 转换为字节串,例如:b"hello"
(2) 变量或者包含非英文字符的字符串转换为字节串方法:bytes.encode()
(3) 字节串转换为字符串的方法 : bytes.decode()
例 :
“”"
字节串类型演示 bytes
所有的字符串都能转化为字节串
并不是所有的字节串都能转为字符串
“”"
****定义一个字节串数据****
b = b"hello world"
**#utf8字符定义为字节串**
b = "你好".encode()
#字节串转换为字符串
s = "hello ,你好"
b3 = s.encode() #str.encode() 转换为字节串
b3.decode() #bytes.decode() 转换为字符串
文件读写操作
读:即从文件中获取内容
—写:即修改文件中的内容
对文件实现读写的基本操作步骤为:打开文件,读写文件,关闭文件。
打开模式 :
r 以读方式打开,文件必须存在
w 以写方式打开,文件不存在则创建,存在清空原有内容
a 以追加模式打开,文件不存在则创建,存在则继续进行写操作
**r+** 以读写模式打开,文件必须存在
**w+** 以读写模式打开文件,不存在则创建,存在清空原有内容
**a+** 追加并可读模式,文件不存在则创建,存在则继续进行写操作
**rb** 以二进制模式打开 同r
**wb** 以二进制模式打开 同w
**ab** 以二进制追加模式打开 同a
**rb+** 以二进制读写模式打开 同r+
**wb+** 以二进制读写模式打开 同w+
**ab+** 以二进制读写模式打开 同a+
例 :file_object = open(file_name,access_mode=“r”,buffering = -1,encoding = None)
参数: **file_name** : 文件名
**access_mode** : 打开文件的方式,如果不写默认为 "r"
**buffering** :1 表示有行缓冲,默认则表示使用系统默认提供的缓冲机制
类型自定义 buffering = -1 ,行缓冲 buffering =1,当遇到\n时刷新缓冲 ,指定缓冲区大小 buffering >1 必须以二进制方式打开
**file_obj.flush()** 刷新缓冲
**encoding = "UTF-8"** 设置打开文件的编码方式,一般linux下不需要
读取文件
方法1(常用): 用于二进制和文本文件读取
read(size) 功能:来直接读取文件中字符 例:read(1024) 表示一次最多读取1024字节
例: 打开文件 : f = open(“file.txt”,“r”)
读取文件内容 : data = f.read()
关闭文件 f.close()
**例2 :对于大文件通常都会分块循环读取**
f = open("file.txt","r")
while True:
data = f.read(1024)
if data = "": #读取文件结尾为空则跳出循环
break
关闭文件 f.close()
**方法2 :常用于文本读取**
readline(size)
如果没有给定size 参数(默认值为 -1 ) 文件将被读取至末尾
遇到换行都会终止读取
**方法3** :常用于文本读取
readlines(size)
**方法4** :常用于文本读取
迭代获取
f = open("file.txt","r")
for line in f :
print (line,end = "") #每次获取一行
f.close()
写入文件
“”"
文件写操作示例
“”"
方法1 :
f = open(“file.txt”,“w”) #写入方式打开
n = f.write(“asdfdas”) #写入字符串
f.close() #关闭
**方法2** :
writelines()
with操作
语句格式:with context_expresssion as obj:
with-body
#生成f
with open("file.txt","rb+") as