一、在python3中引入了字节串的概念,与str不同,字节串以字节序列值表达数据,更方便用来处理二进制数据。因此在python3中字节串是常见的二进制数据展现方式。
普通的ascii编码字符串可以在前面加b转换为字节串,例如:b"hello"
字符串转换为字节串方式:str.encode()
字节串转换为字符串方法:bytes.decode()
对文件实现读写的基本操作步骤为:打开文件,读写文件,关闭文件
file_object = open(file_name, access_mode = 'r', buffering = -1)
功能:打开一个文件,返回一个文件对象
参数:file_name 文件名;
access_mode 打开文件的方式,如果不写默认为 ‘r’
buffering 1表示有行缓冲,默认则表示使用系统默认提供的缓冲机制。
返回值:成功返回文件操作对象。
打开文件模式:r w a r+(读写,文件必须存在) w+ a+(文件必须存在)
rb wb ab rb+ wb+ ab+ :上面文件模式的二进制模式
关闭文件对象:file_object.close()
二、读文件
1.file_object.read([size]):讲文件中的内容读到内存中,如果不填参数,默认读文件里 所有内容。
2.file_object.readline([size])
功能:用来读取文件中一行
参数:如果没有给定size参数(默认值为-1)或者size值为负,表示读取一行,给定size表示最多读取制定的字符(字节)。
返回值:返回读取到的内容
3.readlines([sizeint])
功能:读取文件中的每一行作为列表中的一项
参数:如果没有给定size参数(默认值为-1)或者size值为负,文件将被读取直至末尾,给定size表示读取到size字符所在行为止。
返回值:返回读取到的内容列表。
三、文件对象本身也是一个可迭代对象,在for循环中可以迭代文件的每一行。
for line in file_obj:
print(line)
四、写文件
file_obj.write(string)
功能:把文本数据或者二进制数据块的字符串写入到文件中去
参数:要写入的内容
返回值:写入的字符个数
注意:如果需要换行要自己在写入内容中添加\n
file_obj.writelines(str_list)
功能:接受一个字符串列表作为参数,将他们写入文件。
参数:要写入的内容列表。
五、with语句
with open('file','r+') as f:
f.read()
通过with方法可以不用close(),因为with生成的对象在语句块结束后会自动处理,所以也就不需要close了,但是这个文件对象只能在with语句块内使用。
六、缓冲区 buffering
buffering表示选择的缓冲区类型。默认情况下是系统自定义缓冲,1表示行缓冲,大于1表示设置缓冲区的大小。
刷新缓冲区条件:
1.缓冲区被写满
2.程序执行结束或者文件对象被关闭
3.行缓冲遇到换行
4.程序中调用flush()函数
七、文件偏移量
file_obj.tell() :获取文件偏移量大小
flie_obj.seek(offset[,whence])
功能:移动文件偏移量位置
参数:offset 代表相对于某个位置移动的字节数。负数表示向前移动,正数表示向后移动。
whence是基准位置 默认值为0,表示从文件开头算起,1代表从当前位置算起,2代表从文件末尾算起。
注意:必须以二进制方式打开文件时基准位置才能是1或者2
八、文件处理方法
1. 获取文件大小 os.path.getsize(file)
功能:获取文件大小
参数:文件路径
返回值:文件大小(字节)
2.查看文件列表 os.listdir(dir)
功能:查看文件列表
参数:目标位置
返回值:文件列表
3.判断文件是否存在 os.path.exists(flie)
功能:判断文件是否存在
参数:文件路径
返回值:存在返回True,不存在返回False
4.判断文件类型 os.path.isfile(file)
功能:判断文件类型
参数:文件路径
返回值:如果是普通文件返回True ,否则返回False
5.删除文件os.remove(file)
功能:删除文件
参数:文件路径
















