Python open()函数打开文件的模式详解

Python open函数的模式详解

  在Python中使用open()函数打开文件,并返回一个文件对象,然后通过文件对象对文件进行读写操作。不同类型的文件需要采用不同的模式来打开,并且采用不同模式打开文件,我们可以进行的操作以及程序运行的结果也是不同的。

打开模式

open()函数完整的语法格式为:

open(file, mode=‘r’, buffering=None, encoding=None, errors=None, newline=None, closefd=True)
函数定义的参数挺多,这里我们着重讲解mode——文件打开模式。mode参数有两大类,分别用来指定打开文件的文件格式和读写模式。

文件格式相关参数

t:以文本格式打开文件(默认)。一般用于文本文件,如:txt。
b:以二进制格式打开文件。一般用于非文本文件,如:图片。
这一类参数可以与其它的模式参数组合使用,用于指定打开文件的格式,需要根据你要打开文件的类型进行选择。

读写模式相关参数

r:以只读方式打开文件(默认模式)。文件指针定位在文件头的位置。如果文件不存在会报错
w:以只写方式打开文件。如果文件存在,则打开文件,清空文件内容,从文件头开始编辑;如果文件不存在,则创建新文件,打开编辑。
a:以追加方式打开文件,同样是只写,不允许进行读操作。如果文件存在,则打开文件,将文件指针定位到文件尾。因此,新的内容是追加在已有内容之后。如果文件不存在,则创建新文件进行写入。
+:打开一个文件进行更新(可读写)。注意:该模式不能单独使用,需要与r/w/a组合使用。打开文件后文件指针的位置取决于另一个组合参数。

组合模式

r+:打开一个文件用于读写。如果文件存在,则打开文件,将文件指针定位在文件头,新写入的内容在原有内容的前面;如果文件不存在会报错。
w+:打开一个文件用于读写。如果文件存在,则打开文件,清空原有内容,进入编辑模式;如果文件不存在,则创建一个新文件进行读写操作。
a+:以追加模式打开一个文件用于读写。如果文件存在,则打开文件,将文件指针定位在文件尾,新写入的内容在原有内容的后面;如果文件不存在,则创建一个新文件用于读写。

所有上面这些模式默认都是t——文本模式,如果要以二进制模式打开,需要加上参数b,如:rb、rb+、wb、wb+、ab、ab+。

在了解了各种模式参数的具体用法后,根据您要打开的文件类型,以及打开文件后的操作类型来选用正确的mode参数即可。

原文地址:https://blog.51cto.com/13850653/2410859

时间: 2024-10-11 18:17:59

Python open()函数打开文件的模式详解的相关文章

Python中__init__.py文件的作用详解

转自http://www.jb51.net/article/92863.htm http://www.jb51.net/article/86580.htm 网址包含更多关于Python相关内容感兴趣的读者可查看本站专题:<Python图片操作技巧总结>.<Python数据结构与算法教程>.<Python Socket编程技巧总结>.<Python函数使用技巧总结>.<Python字符串操作技巧汇总>.<Python入门与进阶经典教程>

[Python]打开文件的模式

Python中以sys.open()方法打开文件 1 import sys 2 3 file = open("D:\\file.txt") 其中可在第二个参数的位置指定打开文件的模式 1 import sys 2 3 file = open("D:\\file.txt", "r") 参数共有以下几种: rU或Ua 以读方式打开,同时提供通用换行符支持(PEP278)wb 以写方式打开,a 以追加模式打开(从EOF开始,必要时创建新文件)r+ 以读

Python小白学习之路(二十)—【打开文件的模式二】【文件的其他操作】

打开文件的模式(二) 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码.图片文件的jgp格式.视频文件的avi格式) rb:   以字节方式读文件 wb: 以字节方式写文件ab: 以字节方式追加文件 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,所以不能指定编码 1. rb #错误举例 f = open ('test1.py', 'rb', encoding = 'utf

python处理word文件:win32com用法详解

目标:用python处理doc文件 方法:引入win32com模块 ************************************************************************** 一.安装 ************************************************************************** 首先要先下载安装win32com模块(起先在linux下装不成功,后在windows下面成功了...) 下载地址:http

linux函数深入探索——open函数打开文件是否将文件内容加载到内存空间

转自:https://blog.csdn.net/qq_17019203/article/details/85051627 问题:open(2)函数打开文件是否将文件内容加载到内存空间 首先,文件打开后都会产生一个文件描述符fd,这个文件描述符其实是记录在PCB的文件描述符表中,而这个文件描述符实质上是一个结构体,用来存放跟打开文件相关的信息,基于此前提,我产生了两种假设 1.文件描述符结构体中只存储了文件在硬盘中的相应地址信息,并不将文件内容加载到内存中,这样做的好处是减少内存空间的占用,但大

Python调用中科院NLPIR(ICTCLAS2015)详解 刘超([email&#160;protected])

Python调用中科院NLPIR(ICTCLAS2015)详解 南京理工大学 计算机科学与工程学院 RuiXia_NUSTM课题组 ChaoLiu([email protected]) ------------------------- 主要讲解内容: 1. NLPIR版本及下载 2. 代码问题 3. userdict的使用问题 ------------------------- 友情提示:如果是swig问题,自己处理.首先下载swig,swig可以帮助我们将C或者C++编写的DLL或者SO文件

Javascript 严格模式详解

Javascript 严格模式详解 作者: 阮一峰 日期: 2013年1月14日 一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. 设立"严格模式"的目的,主要有以下几个: - 消除Javascript语法的一些不合理.不严谨之处,减少一些怪异行为; - 消除代码运行的一些不安全之处,保证代码运行的安全: - 提高编译器效率,增加运行速度

Extjs MVC开发模式详解

Extjs MVC开发模式详解 在JS的开发过程中,大规模的JS脚本难以组织和维护,这一直是困扰前端开发人员的头等问题.Extjs为了解决这种问题,在Extjs 4.x版本中引入了MVC开发模式,开始将一个JS(Extjs)应用程序分割成Model-View-Controller三层,为JS应用程序的如何组织代码指明了方向,同时使得大规模JS代码变得更加易于重用和维护:这就是Extjs MVC开发模式的初衷. 在官方给出的MVC例子中,我们可以看到一个简单的列表编辑功能,这篇文章就围绕这个功能进

Android AndroidManifest 清单文件以及权限详解

每个Android应用都需要一个名为AndroidManifest.xml的程序清单文件,这个清单文件名是固定的并且放在每个Android应用的根目录下.它定义了该应用对于Android系统来说一些非常重要的信息.Android系统需要这些信息才能正常运行该应用.Android程序清单文件主要具有下面作用: ·        它给应用程序Java包命名,这个包名作为应用程序唯一标识符. ·        它描述了应用程序中的每个程序组件-Activity,Service,Broadcast Re