文件操作
文件操作主要包括对文件内容的读写操作,这些操作是通过文件对象实现的,通过文件对象可以读写文本文件和二进制文件
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
open()函数共有8个参数,其中参数file和mode是最为常用的,其他参数一般情况下很少使用,下面分别说一下这些参数的含义
1.file参数
file参数是要打开的文件,可以是字符串或整数。如果file是字符串表示文件名,文件名可以是相对当前目录的路径,也可以是绝对路径;如果file是整数表示文件描述符,文件描述符指向一个已经打开的文件
2.mode参数
设置打开模式,二进制文件设置rb,wb,xb,ab,如果是文本文件,则设置r,w,x,a
r:只读模式打开文件(默认)
w:写入模式打开文件,会覆盖已经存在的文件
x:独占创建模式,文件不存在时创建并以写入模式打开,如果文件已存在则抛出异常
a:追加模式,如果文件存在,则写入时内容追加到文件末尾
b:二进制模式
+:更新模式
t:文本模式(默认)
3.buffering参数
buffering是设置缓冲区策略,默认值为-1,当buffering=-1时系统会自动设置缓冲区,通常是4096或8192字节;当buffering=0时关闭缓冲区,关闭缓冲区时数据直接写入文件中,这种模式主要用于二进制文件的写入操作;当buffering>0时,buffering用来设置缓冲区字节大小
4.encoding
设置文件编码
5.errors
用来指定编码发生错误时如何处理
6.newline
用来设置换行模式
文本文件读写
read(size=-1):从文件中读取字符串,size限制最多读取的字符数,size=-1时没有限制,读取全部内容
redline(size=-1):读取到换行符或文件尾并返回单行字符串,如果已经到文件尾,则返回一个空字符串,size是限制读取的字符数,size=-1时没有限制
readlines(hint=-1):读取文件数据到一个字符串列表中,每一个行数据是列表的一个元素,hint是限制读取的行数,hint=-1时没有限制
write(s):将字符串s写入文件,并返回写入的字符数
writelines(lines):向文件中写入一个列表,不添加行分隔符,因此通常为每一行末尾提供行分隔符
flush():刷新写缓冲区,数据会写入到文件中
二进制文件读写
read(size=-1):从文件中读取字节,size限制最多读取的字节数,size=-1时没有限制,读取全部字节
redline(size=-1):从文件中读取并返回一行,size是限制读取的字节数,size=-1时没有限制
readlines(hint=-1):读取文件数据到一个列表中,每一个行数据是列表的一个元素,hint是限制读取的行数,hint=-1时没有限制
write(s):写入b字节,并返回写入的字符数
writelines(lines):向文件中写入一个列表,不添加行分隔符,因此通常为每一行末尾提供行分隔符
flush():刷新写缓冲区,数据会写入到文件中
os模块
Python对文件的操作是通过文件对象实现的,如删除文件、修改文件名,创建目录,删除目录和遍历目录,可以通过Python的os模块实现
os.rename(old-src, dst):修改文件名,old-src是源文件,dst是目标文件,它们都可以是相对路径或者绝对路径
os.remove(path):删除path所指的文件,如果path是目录,则会引发OSError
os.mkdir(path):创建path所指的目录,如果目录已存在,则会引发FileExistsError
os.rmdir(path):删除path所指的目录,如果目录非空,则会引发OSError
os.walk(top):遍历top所指的目录树,自顶向下遍历目录树,返回值是一个三元组(目录路径,目录名列表,文件名列表)
os.listdir(dir):列出指定目录中的文件和子目录
常用的属性有以下两种
os.curdir属性:获得当前目录
os.pardir属性:获得当前父目录
os.path模块
os.path.abspath(path):返回path的绝对路径
os.path.basename(path):返回路径的基础名部分,如果path是指向一个文件,则返回文件名,如果path指向的是一个目录,则返回最后目录名
os.path.dirname(path):返回path路径中目录部分
os.path.exists(path):判断path文件是否存在
os.path.isfile(path):如果path是文件,则返回True
os.path.isdir(path):如果path是目录,则返回True
os.path.getatime(path):返回最后一次的访问时间,返回值是一个UNIX的时间戳,如果文件不存在或无法访问,则引发OSError
os.path.getmtime(path):返回最后修改时间,返回值是一个UNIX的时间戳,如果文件不存在或无法访问,则引发OSError
os.path.getctime(path):返回创建时间,返回值是一个UNIX时间戳,如果文件不存在或无法访问,则引发OSError
os.path.getsize(path):返回文件大小,以字节为单位,如果文件不存在或无法访问,则引发OSError
python 读 二进制文件 查找 python 读写二进制文件
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
MySQL5.7.36安装-二进制(源码)版本
MySQL5.7.36安装-二进制(源码)版本
mysql MySQL sed -
python读写二进制文件
需求:将Test文件夹下所有bin文件中凡是出现128的统一替换成129。
python python文件操作 python读写二进制文件 大端模式 字节数组