Python File(文件) 方法整理


Posted in Python onFebruary 18, 2019

open() 方法

Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。

注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。

open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。

open(file, mode='r')

完整的语法格式为:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

参数说明:

  • file: 必需,文件路径(相对或者绝对路径)。
  • mode: 可选,文件打开模式
  • buffering: 设置缓冲
  • encoding: 一般使用utf8
  • errors: 报错级别
  • newline: 区分换行符
  • closefd: 传入的file参数类型
  • opener:
  • mode

参数有:

模式 描述
t 文本模式 (默认)。
x 写模式,新建一个文件,如果该文件已存在则会报错。
b 二进制模式。
+ 打开一个文件进行更新(可读可写)。
U 通用换行模式(不推荐)。
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

默认为文本模式,如果要以二进制模式打开,加上 b 。

file 对象

file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数:

序号 方法及描述
1 file.close() 关闭文件。关闭后文件不能再进行读写操作。
2 file.flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
3 file.fileno() 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
4 file.isatty() 如果文件连接到一个终端设备返回 True,否则返回 False。
5 file.next() 返回文件下一行。
6 file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。
7 file.readline([size]) 读取整行,包括 "\n" 字符。
8 file.readlines([sizeint]) 读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。
9 file.seek(offset[, whence]) 设置文件当前位置
10 file.tell() 返回文件当前位置。
11 file.truncate([size]) 截取文件,截取的字节通过size指定,默认为当前文件位置。
12 file.write(str) 将字符串写入文件,返回的是写入的字符长度。
13 file.writelines(sequence) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
Python 相关文章推荐
Python进程通信之匿名管道实例讲解
Apr 11 Python
Python判断字符串与大小写转换
Jun 08 Python
详解在Python程序中自定义异常的方法
Oct 16 Python
利用Python脚本实现ping百度和google的方法
Jan 24 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
Dec 14 Python
基于python批量处理dat文件及科学计算方法详解
May 08 Python
Python设计模式之享元模式原理与用法实例分析
Jan 11 Python
python调用动态链接库的基本过程详解
Jun 19 Python
python try except返回异常的信息字符串代码实例
Aug 15 Python
django queryset 去重 .distinct()说明
May 19 Python
Django QuerySet查询集原理及代码实例
Jun 13 Python
python plt.plot bar 如何设置绘图尺寸大小
Jun 01 Python
Python异常处理知识点总结
Feb 18 #Python
Python os.access()用法实例
Feb 18 #Python
python使用pipeline批量读写redis的方法
Feb 18 #Python
Python变量类型知识点总结
Feb 18 #Python
Python中文编码知识点
Feb 18 #Python
对Python的多进程锁的使用方法详解
Feb 18 #Python
对python中if语句的真假判断实例详解
Feb 18 #Python
You might like
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
PHP中的流(streams)浅析
2015/07/02 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
php中如何执行linux命令详解
2018/11/06 PHP
javascript编程起步(第三课)
2007/02/27 Javascript
css值转换成数值请抛弃parseInt
2011/10/24 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
js字符串截取函数slice、substring和substr的比较
2016/05/17 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
Python与Redis的连接教程
2015/04/22 Python
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
Python编写一个优美的下载器
2018/04/15 Python
pandas 将索引值相加的方法
2018/11/15 Python
python障碍式期权定价公式
2019/07/19 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
Python实现Restful API的例子
2019/08/31 Python
如何理解Python中包的引入
2020/05/29 Python
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
.net开发工程师面试题
2014/02/25 面试题
销售人员获奖感言
2014/02/05 职场文书
元旦联欢会感言
2014/03/04 职场文书
相亲大会策划方案
2014/06/05 职场文书
贫困证明书格式及范文
2014/10/15 职场文书
2014年保卫科工作总结
2014/12/05 职场文书
公司聚餐通知
2015/04/22 职场文书
雾霾停课通知
2015/04/24 职场文书
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python
Python3接口性能测试实例代码
2021/06/20 Python
新手入门Mysql--sql执行过程
2021/06/20 MySQL
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android
vue里使用create, mounted调用方法
2022/04/26 Vue.js