io文件
str 字符串
bytes 字节串
bytes=str.encode()
str=bytes.decode()
1.生成文件对象
权限:r读 w写 a追加写 r+读写 w+写读 a+写读 (字符串格式)
加b 字节串格式 比如:‘rb+‘
file_object=open(file,‘w‘)
2.读写操作
读模式文件对象只能调用read(),写模式文件对象只能调用write(‘ok‘),读写模式才可以都调用
读写模式差别在于,文件是否存在,读模式打开文件必须存在,不然报错
写模式打开,文件存在,打开原文件;不存在,新建file文件
w 和 a模式差别在于,w模式,文件原有内容删除,从开头写;a模式,在文件最后追加
file_object.read()
read()全部读取 read(1024)读1024个字节
readline()读一行 readline(1024) 读1024字节,一行不够1024读一行;1025个字节,先读1024,下次调用再读1个
for line in file_object:
print(line) #每次读一行
file_object.write(‘ok‘+‘\n‘) #多次调用执行的时候,要加\n手动换行
刷新缓冲区条件:
1. 系统默认缓冲区被写满
2. 程序执行结束或者文件对象被关闭
3.程序中调用flush()函数
file_object.flush()
4. 行缓冲遇到换行
系统默认file_object = open(file_name, access_mode=‘r‘, buffering=-1) buffering=1行缓冲
3.关闭文件对象
file_object.close()
文件偏移量:
查看
file_object.tell()
设置
file_object.seek()
file_object.seek(0,0)开头位置 file_object.seek(0,1)当前 file_object.seek(0,2)结尾 前面的0表示从这个位置不移动
字符串打开,只能开头位置往后移
file_object.seek(2,0)开头位置往后移动2个位置
字节串打开,可以前后移动
file_object.seek(-10,2)结尾往前移动10个位置
file_object.seek(10,2)结尾往后移动10个位置
r /w 打开文件偏移量为0 a打开打开文件偏移量为结尾
文件描述符:系统对每个io操作生成一个不重复编号
file_object.fileno()
通过IO对象获取对应的文件描述符
后面Io多路复用 poll/epoll会用到
常用几个文件函数:
import os
os.path.getsize(‘file‘)查看文件大小
os.path.exists(‘file‘)查看文件是否存在
os.path.isfile(‘file‘)查看是否是file文件类型
os.path.abspath(‘file‘)查看文件绝对路径 os.path.abspath(__file__)查看本模块路径
os.path.isdir(‘file‘)查看是否是文件夹类型
os.listdir() 查看目录下的文件列表 返回list
os.remove(file) 删除
原文地址:https://www.cnblogs.com/chenlulu1122/p/11888615.html