
python进阶(4)文件操作
发布日期:2021-05-09 03:53:26
浏览次数:16
分类:博客文章
本文共 2351 字,大约阅读时间需要 7 分钟。
文件操作
文件操作主要包括对文件内容的读写操作,这些操作是通过文件对象实现的,通过文件对象可以读写文本文件和二进制文件
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
open()
函数共有8个参数,其中参数file和mode是最为常用的,其他参数一般情况下很少使用,下面分别说一下这些参数的含义
- 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(src, dst):修改文件名,
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
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月07日 21时08分06秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
程序员视角:鹿晗公布恋情是如何把微博搞炸的?
2019-03-06
系统编程-进程间通信-无名管道
2019-03-06
为什么我觉得需要熟悉vim使用,难道仅仅是为了耍酷?
2019-03-06
一个支持高网络吞吐量、基于机器性能评分的TCP负载均衡器gobalan
2019-03-06
HDOJ2017_字符串统计
2019-03-06
404 Note Found 团队会议纪要
2019-03-06
CentOS安装Docker-ce并配置国内镜像
2019-03-06
使用Redis作为Spring Security OAuth2的token存储
2019-03-06
【SOLVED】Linux使用sudo到出现输入密码提示延迟时间长
2019-03-06
项目引入非配置的文件,打成war包后测试报错的可能原因
2019-03-06
Git学习笔记
2019-03-06
不需要爬虫也能轻松获取 unsplash 上的图片
2019-03-06
elementUi源码解析(1)--项目结构篇
2019-03-06
Nmap扫描工具介绍
2019-03-06
算法笔记:递归、动态规划
2019-03-06