首页 / 知识
python文件打开模式
2023-11-12 13:36:00
我们先来看下在Python、PHP和C语言中打开文件的函数定义
Python
#Python2
open(name[,mode[,buffering]])
#Python3
open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)
PHP
resourcefopen(string$filename,string$mode[,bool$use_include_path=false[,resource$context]])
C语言
intopen(constchar*pathname,intflags);
会发现以上3种编程语言内置的打开文件的方法接收的参数中,除了都包含一个“文件路径名称”,还会包含一个mode参数(C语言的open函数中的flags参数作用相似)。这么mode参数定义的是打开文件时的模式,常见的文件打开模式有:只读、只写、可读可写、只追加。不同的编程语言中对文件打开模式的定义有些微小的差别,我们来看下Python中的文件打开模式有哪些。
文件打开模式描述
r以只读模式打开文件,并将文件指针指向文件头;如果文件不存在会报错
w以只写模式打开文件,并将文件指针指向文件头;如果文件存在则将其内容清空,如果文件不存在则创建
a以只追加可写模式打开文件,并将文件指针指向文件尾部;如果文件不存在则创建
r+在r的基础上增加了可写功能
w+在w的基础上增加了可读功能
a+在a的基础上增加了可读功能
b读写二进制文件(默认是t,表示文本),需要与上面几种模式搭配使用,如ab,wb,ab,ab+(POSIX系统,包括Linux都会忽略该字符)
思考1:r+、w+和a+都可以实现对文件的读写,那么他们有什么区别呢?
r+会覆盖当前文件指针所在位置的字符,如原来文件内容是"Hello,World",打开文件后写入"hi"则文件内容会变成"hillo,World"
w+与r+的不同是,w+在打开文件时就会先将文件内容清空,不知道它有什么用
a+与r+的不同是,a+只能写到文件末尾(无论当前文件指针在哪里)
思考2:为什么要定义这些模式呢?为什么不能像我们用word打开一篇文档一样既可以读,又可以写,还可修改呢?
关于这个问题,我查了很多资料,也没找到很权威的说明。在跟同行朋友交流过程中,发现大家主要有两种观点:
跟安全有关,有这种观点的大部分是做运维的朋友,他们认为这就像linux上的rwx(读、写、执行)权限。
跟操作系统内核管理I/O的机制有关,有这种观点的大部分是做C开发的,特别是与内核相关的开发人员。为了提高读写速度,要写入磁盘的数据会先放进内存缓冲区,之后再回写。由于可能会同时打开很多文件,当要回写数据时,需要遍历以打开的文件判断是否需要回写。他们认为如果打开文件时指定了读写模式,那么需要回写时,只要去查找以“可写模式”打开的文件就可以了。
以上内容为大家介绍了python文件打开模式,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
Python网络编程调用接收数据的三种
Python网络编程调用接收数据的三种方法,数据,代码,基础,通用,通讯,服务,网络,培训,方法,报文,最近在使用python进行网络编程开发一个通用的tcPython实现批量文件的压缩处理
Python实现批量文件的压缩处理,项目,信息,分析,数据,软件,培训,文件夹,文件,源文件,目标,一、前言接到项目求助,需要对上千个文件夹中的文件进Python如何在后台自动解压各种压缩
Python如何在后台自动解压各种压缩文件?,代码,综合,工具,分析,检测,培训,文件,文件夹,模块,结尾,一、需求描述编写一个Python程序,每次下载压Python语言自带的数据结构有哪些
Python语言自带的数据结构有哪些,异常,数字,数据,元素,序列,培训,位置,名称,分析,括号,Python作为一种脚本语言,其要求强制缩进,使其易读、美观数据科学中必须了解的Python核心库
数据科学中必须了解的Python核心库,数据,生产,代码,标准,分析,培训,图片,工具,统一,涉足,python有三个核心数据科学库,在此基础上还创建了许多Python编程中的反模式
Python编程中的反模式,代码,时间,活跃,部门,标准,培训,模式,复杂度,初学者,错误,python是时下最热门的编程语言之一了。简洁而富有表达力的语Python变量数据类型的转换
Python变量数据类型的转换,代码,数据,培训,信息,字符串,类型,变量,整数,浮点,函数,虽然Python是弱类型编程语言,不需要像Java或C语言那样还要Python文件读取相关方法
Python文件读取相关方法,数据,位置,文件,中行,培训,方法,字节,内容,结果,字符串,我们知道,对文件的读取操作需要将文件中的数据加载到内存中,而如何在 python 中打开文件?
如何在 python 中打开文件?,名称,单位,培训,模式,文件,表示,缓存,路径,函数,定义,使用内置函数open就可以打开文件。先来看下python中对openPython可执行文件和模块
Python可执行文件和模块,标准,培训,模块,文件,属性,上面,内容,变量,函数,源码,python源代码文件按照功能可以分为两种类型:用于执行的可执行程Python元类之通过元类实现数据库OR
Python元类之通过元类实现数据库ORM框架,数据,名称,信息,代码,主体,当中,字段,分析,一致,投入,ORM框架是什么如果是没有做过后端的小伙伴上来Python系统互动
Python系统互动,互动,系统,管理,通信,标准,管理系统,培训,操作系统,功能,进程,系统互动,主要指Python和操作系统(operatesystem)、文件系统(fi