python进阶(4)文件操作
文件操作
文件操作主要包括对文件内容的读写操作,这些操作是通过文件对象实现的,通过文件对象可以读写文本文件和二进制文件
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(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
python进阶(4)文件操作的更多相关文章
- Python的高级文件操作(shutil模块)
Python的高级文件操作(shutil模块) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让我们用python的文件处理来进行文件拷贝,想必很多小伙伴的思路是:使用打开2个 ...
- python os&shutil 文件操作
python os&shutil 文件操作 # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于W ...
- python 历险记(三)— python 的常用文件操作
目录 前言 文件 什么是文件? 如何在 python 中打开文件? python 文件对象有哪些属性? 如何读文件? read() readline() 如何写文件? 如何操作文件和目录? 强大的 o ...
- Python入门篇-文件操作
Python入门篇-文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.文件IO常用操作 open:打开 read:读取 write:写入 close:关闭 readlin ...
- python基础篇(文件操作)
Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...
- Python之常用文件操作
Python之常用文件操作
- python基础之 编码进阶,文件操作和深浅copy
1.编码的进阶 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码.即先将其他编码的字符串解码(decode)成unicode,再从unic ...
- python基础 (编码进阶,文件操作和深浅copy)
1.编码的进阶 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码. 即先将其他编码的字符串解码(decode)成unicode,再从uni ...
- Python开发【第三篇】:Python基本之文件操作
Python基本之文本操作 一.初识文本的基本操作 在python中打开文件有两种方式,即:open(...) 和 file(...) ,本质上前者在内部会调用后者来进行文件操作,推荐使用 open ...
- python基础之文件操作
对于文件操作中最简单的操作就是使用print函数将文件输出到屏幕中,但是这种操作并不能是文件保存到磁盘中去,如果下调用该数据还的重新输入等. 而在python中提供了必要的函数和方法进行默认情况下的文 ...
随机推荐
- KVM虚拟化(KVM简介和KVM安装)
KVM 虚拟化架构分类 寄居虚拟化架构:指在宿主操作系统之上安装和运行虚拟化程序,依赖于宿主操作系统对设备的支持和物理资源的管理. 裸金属虚拟化架构:指直接在硬件上面安装虚拟化软件,再在其上安装操作系 ...
- linux系统磁盘管理(磁盘阵列)
1.磁盘阵列简介 RAID(Redundant Array of Independent Disks)即独立硬盘冗余阵列,简称磁盘阵列.磁盘阵列是由很多价格较便宜的磁盘,以硬件(RAID卡)或软件(M ...
- UML——宏观总结
今天果断开始UML的学习,要不就要被12期赶超了.努力学习的效率 一.宏观导图把控 导图概要说明:RUP这块儿的内容相当于软件工程已经学过了,只不过这里换了个名词而已.面向对象,已经不再陌生,vb中早 ...
- Pythonchallenge1过关攻略
第一关上来是一个电视,上面写着2^38,这就非常关键了,这时候我们已经有了大致思路,再看一眼电视机下面的话确认一下,"Hint: try to change the URL address. ...
- CCF CSP 202012-2 期末预测之最佳阈值
202012-2 期末预测之最佳阈值 题目背景 考虑到安全指数是一个较大范围内的整数.小菜很可能搞不清楚自己是否真的安全,顿顿决定设置一个阈值 θ,以便将安全指数 y 转化为一个具体的预测结果--&q ...
- 思维导图整理Java并发基础
话不多说,先上图. 1.基本概念 欲说线程,必先说进程. 进程:进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位. 线程:线程是进程的一个执行路径,一个进程中至少有一个线程,进 ...
- POJ2785 4 Values whose Sum is 0 (二分)
题意:给你四组长度为\(n\)序列,从每个序列中选一个数出来,使得四个数字之和等于\(0\),问由多少种组成情况(仅于元素的所在位置有关). 题解:\(n\)最大可以取4000,直接暴力肯定是不行的, ...
- Spring web之restTemplate超时问题处理
问题 项目中有个远程服务因为某些原因会访问不通,于是就在调用的那一步挂起无法结束了. 查看代码 代码大概如下 CloseableHttpClient closeableHttpClient = Htt ...
- requests -- Python
使用requests方法后,会返回一个response对象,其存储了服务器响应的内容:如下r表示get请求后的响应对象r = requests.get('http://hz.58.com/sale.s ...
- 如何安装Gephi工具
gephi中文版是一款开源免费跨平台基于JVM的复杂网络分析软件,安装后需要安装Java jdk API,否则就会出现gephi打不开的情况 该工具主要用于各种网络和复杂系统,动态和分层图的交互可视化 ...