python open函数参数_python中open函数的使用

python open函数参数_python中open函数的使用一、open()的函数原型open(file,mode=‘r’,buffering=-1,encoding=None,errors=None,newline=None,closefd=True)从官方文档中我们可以看到open函数有很多的参数,我们常用的是file,mode和encoding,对于其它的几个参数,平时不常用,也简单介绍一下。buffering的可取值有0,1,>1三个…

大家好,又见面了,我是你们的朋友全栈君。

一、open()的函数原型open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True)

从官方文档中我们可以看到open函数有很多的参数,我们常用的是file,mode和encoding,对于其它的几个参数,平时不常用,也简单介绍一下。

buffering的可取值有0,1, >1三个,0代表buffer关闭(只适用于二进制模式),1代表line buffer(只适用于文本模式),>1表示初始化的buffer大小;

encoding表示的是返回的数据采用何种编码,一般采用utf8或者gbk;

errors的取值一般有strict,ignore,当取strict的时候,字符编码出现问题的时候,会报错,当取ignore的时候,编码出现问题,程序会忽略而过,继续执行下面的程序。

newline可以取的值有None, \n, \r, ”, ‘\r\n’ ,用于区分换行符,但是这个参数只对文本模式有效;

closefd的取值,是与传入的文件参数有关,默认情况下为True,传入的file参数为文件的文件名,取值为False的时候,file只能是文件描述符,什么是文件描述符,就是一个非负整数,在Unix内核的系统中,打开一个文件,便会返回一个文件描述符。

二、file() 与open()

两者都能够打开文件,对文件进行操作,也具有相似的用法和参数,但是,在我看来,这两种文件打开方式有本质的区别,file为文件类,用file()来打开文件,相当于这是在构造文件类,而用open()打开文件,是用python的内建函数来操作。

三、参数Mode的基本取值

201631170920459.png?20162117928

r、w、a为打开文件的基本模式,对应着只读、只写、追加模式;

b、t、+、U这四个字符,与以上的文件打开模式组合使用,二进制模式,文本模式,读写模式、通用换行符,根据实际情况组合使用、

四、 常见的mode取值组合

1、r或rt 默认模式,文本模式读

2、rb 二进制文件

3、w或wt 文本模式写,打开前文件存储被清空

4、wb 二进制写,文件存储同样被清空

5、a 追加模式,只能写在文件末尾

6、a+ 可读写模式,写只能写在文件末尾

7、w+ 可读写,与a+的区别是要清空文件内容

8、r+ 可读写,与a+的区别是可以写到文件任何位置

五、几个模式的区别为了测试不同模式的区别,我们用一小段代码来测试写入文件中的直观不同。

1

2

3

4

5

6

7

test= [“test1\n”,”test2\n”,”test3\n” ]

f= open(“b.txt”,”a+”)

try:

for sin test:

f.write( s )

finally:

f.close()

(1)a+与w+模式的区别

201631170950110.jpg?20162117958

(2)a+与r+模式

201631171015979.png?201621171022

在写入文件前,我们在上面那段代码中加上一句 seek(6),用来定位写入文件写入位置。

注意:r+模式打开文件时,此文件必须存在,否则就会报错,‘r’模式也如此

六、换行符带来的烦恼当你用二进制模式将带有换行符的字符串写入txt文件时,数据存储是正确的,但是当用windows平台的记事本程序打开时,你看到的换行符确实一个个的小黑块,但是,用文本模式,就不存在这样的问题。

在这里,涉及到了不同平台由于编码的问题,而对换行符有不同的识别。unix或者linux系统识别\n为换行符的标识,但是windows平台的编码,对\n不予理睬。

但是python自身带有转化功能,用文本模式的时候,你不会看到由于平台不同而造成的换行效果不同,但是,二进制模式的时候,python便不会再去转化,是什么,就写进去什么,此时的换行符,再用文本模式打开,windows下就不识别‘\n’换行符了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/141475.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JMH探索

    JMH探索JMH探索一、JMH基本介绍1.1什么是JMH1.2JMH入门二、JMH的基本概念和配置2.1例2.2基本标签介绍2.3控制台输出2.4常用模式(Mode)2.5迭代(Iteration)2.6预热(Warmup)2.7配置类(Options)2.8状态(State)三、JMH注意事项3.1Dead-Code代码3.2黑洞3.3常量折叠3.4避免循环3.5分叉四、可视化JMH基本介绍什么是J

  • proxy pac_全局代理和全局直连

    proxy pac_全局代理和全局直连2019独角兽企业重金招聘Python工程师标准>>>…

    2022年10月19日
  • 爬虫原理及应用

    https://www.cnblogs.com/luchun666/p/9394149.html链接:link…

  • linux 下 用phpmailer类smtp发送邮件始终不成功,提示:ERROR: Failed to co

    linux 下 用phpmailer类smtp发送邮件始终不成功,提示:ERROR: Failed to co

  • SSM整合实现增删改查操作【保姆式教学】

    SSM整合实现增删改查操作【保姆式教学】SSM整合实现增删改查操作【超详细】准备工作环境准备数据库准备开始干活新建个Maven项目ssmtest,加上Web支持添加依赖完整的pom.xml创建entity、dao、service、controller包实体类编写添加lombook持久层接口编写业务层接口编写业务层实现类编写表现层编写整合步骤保证Spring框架在web工程中独立运行第一步:编写spring配置文件并导入约束第二步:使用注解配置业务层第三步:导入log4j.properties配置文件第四步:测试spring能否独立

  • Spring中@Autowired、@Resource和@Inject注解的使用和区别

    做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!在使用Spring进行项目开发的时候,会大量使用到自动装配,那自动装配是什么呢?简单来说:Spring 利用依赖注入(DI)功能,完成SpringIOC容器中各个组件之间的依赖关系赋值管理。下面介绍和总结可以在在Spring使用的三种自动注入的注解。首先回顾一下最初使用xml进行是如何进行注入的。零、回顾:XML…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号