python中文件打开的合法模式组合_详解python中各种文件打开模式

在python中,总的来说有三种大的模式打开文件,分别是:a, w, r

当以a模式打开时,只能写文件,而且是在文件末尾添加内容。

当以a+模式打开时,可以写文件,也可读文件,可是在读文件的时候,会发现读出来的数据为空,是因为a+模式是在文件末尾添加内容,所以其指针已经指到了文件末尾,所以读出来的数据就是空的。

?

1

2

3

4

5

6

7

8

9

10

11

# 在文件末尾添加数据

f= open('test.txt','a+')

f.write('test')

f.close()

# 读出数据为空

f= open('test.txt','a+')

print(f.read())

# 读出数据

f= open('test.txt','a+')

f.seek(0)# 将指针移动到首个字符前

print(f.read())

当以w模式打开时,只能写文件,而且会直接将之前的数据给丢失。

当以w+模式,可读可写,但是如果想读取的内容的话,只能在写内容的时候,同时读取其中的内容,相当于只能读取出你刚刚写入的内容,没有意义

?

1

2

3

4

5

f= open('test.txt','w+')

f.write('我不会喜欢你')

f.seek(0)

print(f.read())

f.close()

当以r模式打开文件时,只能读取文件。

当以r+模式打开文件时,可读可写文件。如果是读取文件,会从首个字符开始读取数据,如果是以该模式打开文件,就写数据,则会从首个字符开始写,并一个一个字符的向后面覆盖。如果想从末尾添加内容,则可先read()然后在向其中添加数据。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

# 第一次写入内容

f= open('test.txt','r+')

f.write('我不会喜欢你')# 内容为:我不会喜欢你

f.close()

# 第二次写入

f= open('test.txt','r+')

f.write('其实我')

f.close()# 内容为: 其实我喜欢你

# 第三次写入

f= open('test.txt','r+')

print(f.read())# 内容为: 其实我喜欢你

f.write(', I love you')

f.close()# 内容为: 其实我喜欢你, I love you

自我感觉r+模式可以多加应用。

ps:下面看下python文件打开的几种访问模式

访问模式

说明

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

w

打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

w+

打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

总结

以上所述是小编给大家介绍的python中各种文件打开模式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

原文链接:https://www.cnblogs.com/bao9687426/p/12209065.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ts 模板库文件_vue与ts的使用模版

[源码地址](https://github.com/jielanglang/simple-vue)[项目demo](https://xll.netlify.com/)# 这里讲下使用中注意的事项 具体的使用在项目源码中## 关于typescript详细配制[tsconfig配制详情](https://zhongsp.gitbooks.io/typescript-handbook/content/doc/handbook/Comp…

python查找文件是否存在_python脚本查找文件是否存在的方法

python脚本查找文件是否存在的方法:1、使用os模块os模块中的os.path.exists()方法用于检验文件是否存在。判断文件是否存在import osos.path.exists(test_file.txt)#Trueos.path.exists(no_exist_file.txt)#False2、使用Try语句可以在程序中直接使用open()方法来检查…

java byte 判断相等_你真的了解Java中quot;==quot;和equals()的区别?

部分面试资料链接:https://pan.baidu.com/s/1qDb2YoCopCHoQXH15jiLhA密码:jsam想获得全部面试必看资料,关注公众号,大家可以在公众号后台回复“知乎”即可。“判断两个事物是否相等”,是编程中最常见的操作之一,在Java中&#xff…

python pyqt5 线程 暂停 重启_PyQt5 线程阻塞?

读取串口数据实时显示到textbrower,但会线程阻塞,求大神指教# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 22.ui## Created by: PyQt5 UI code generator 5.10.1## WARNING! All changes made in this file will be lost!import s…

yolov3 python_TensorFlow的YOLOv3和YOLOv3_tiny

git clone https://github.com/Huangdebo/YOLOv3_tiny_TensorFlow.git11.简介添加YOLOv3_tiny和数据增强(剪切,变亮,更改饱和度)2.要求tensorflow> 1.8.0(更低版本也可以工作)OpenCV的Python3.运行演示(1)使用ckpt文件的单图像测试演示:p…

用python玩转数据测试与作业_用Python玩转数据分析10

MOOC上的课程《用Python玩转数据分析》的学习笔记。数据探索与预处理之数据清洗数据探索包括检查数据错误,了解数据分布特征和内在规律数据预处理包括数据清洗,数据集成(integration),数据变换,数据规约(reduction)本次主要讲解数…

excel中空格去不掉java_在Apache POI中跳过空白Excel单元格

我是Apache POI的新手,但我想做的是通过Excel文件(.xls)读取并将其放入ArrayList进行存储,以便稍后进行操作 . 我可以得到整张纸,但我的问题就在于:我得到整张纸(约54183行) .我想跳过空白的单元格,它是类型3.由于某种…

python代替javascript_Pyjamas - 用python代替javascript编写基于浏览器的应用

如果能用python代替Javascript编写基于浏览器的应用,该有多好啊。但是,Javascript是唯一一种能在浏览器里执行的语言(Flash或Silverlight除外)。换个思路,先用Python编写代码,然后在通过编译器转为为Javascript脚本,这…

java unreported exception_Java异常处理

大家好,欢迎来到乐字节小乐的Java技术分享园地在计算机程序运行的过程中,总是会出现各种各样的错误。有一些错误是用户造成的,比如,希望用户输入一个int类型的年龄,但是用户的输入是abc:// 假设用户输入了a…

数据通信原理_同网段主机通信原理

本篇文章介绍数据通信中最基础,最关键的原理之一,两台通网段的主机如何通信。获得更多技术资料和免费学习视频,加入讨论群:752160765适合两台普通电脑之间,两台服务器之间,两台手机之间,电脑和打…

java jdk 未知错误_解决JAVA JDK安装出错的最常见问题,帮你排除困扰

一般来说,安装JAVA JDK的整个流程是很简单的,只要按照提示进行操作即可,就不会出现问题。但是呢,有小伙伴反映说,之前安装了JAVA JDK,进行卸载重装的时候出现错误提示,“正在进行另一Java安装”…

定义const变量是不可以赋值_JavaScript的声明方法和作用范围,常见的结构赋值类型和使用场景...

链接:https://juejin.im/post/5d9bf530518825427b27639d声明const命令:声明常量 let命令:声明变量作用作用域全局作用域函数作用域:function() {}块级作用域:{}作用范围var 命令在全局代码中执行const命令和let命令只能…

java社区活跃度_Java并发编程-活跃度问题

在讲问题前,我先说明一下什么是活跃度?一个并发应用及时执行的能力称作活跃度。我主要讲死锁问题,顺带介绍一下饥饿,弱响应性和活锁。死锁死锁这个词大家都听过,我先来罗列一下产生死锁的四个必要条件:(1) …

python post 上传文件_如何在 Python 中模拟 post 表单来上传文件

展开全部发个以前用urllib2模块来做的62616964757a686964616fe4b893e5b19e31333335343366class HTTPError(urllib2.HTTPDefaultErrorHandler):def __init__(self):self.errMsg def getErrorMsg(self):return self.errMsgdef http_error_default(self, req, fp, code, msg, hdr…

java8 di_java8 多个list对象用lambda求差集操作

业务场景:调用同步接口获取当前全部有效账户,数据库已存在部分账户信息,因此需要筛选同步接口中已存在本地的帐户。调用接口获取的数据集合List list response.getData().getItems();本地查询出来的账户集合List towList accountRepository…

怎么抓python程序的包_如何在AWS上部署python应用程序

如何在AWS上部署python应用程序,学姐呕心沥血亲自总结,亲测有效,比网上看网上大把大把的文档要快得多!作者:蕾学姐亚马逊云计算服务(Amazon Web Services,缩写为AWS),由亚…

【Hadoop】Zookeeper架构/特点

Zookeeper 中的角色主要有以下三类: Zookeeper需要保证高可用性和强一致性为了支持更多的客户端,需要增加更多Server,但是Server增多,意味着投票阶段延迟增大,会影响整个系统的性能。所以在3.3.0中ZK引入的新角色&…

json 反射java 实体_java反射实现javabean转json

BeantoModel->利用cglibBeanMap.create(src);直接将Bean装成Map,然后model._setAttrs(map)即可。ModeltoBean麻烦一点,最简单的方法是用json了。这个bean.dao.put应该是不对的,应该是bean.put吧,还有也不需要转换成map吧&#…

wpf 按钮样式_键盘 | 01.在程序集间引用样式

设置Button和TextBox的特定颜色和字体的样式和默认样式,并在程序集间引用。从零开始用WPF/C#开发一个键盘指示器项目完整开源、免费,不依赖第三方库编译好的先行版程序在微信公众号(香辣恐龙蛋)下载。文章同时发布在微信公众号(香辣恐龙蛋)、B站(香辣恐龙…

怎么去除表中的系统导出的字符_EXCEL非常有用的字符函数LEN、LENB,财务工作者的必备利器...

LEN函数与LENB函数是比较常用的函数,在实际中应用那是相当广的,尤其在财务工作中的使用频率是相当的高。我就一起看看实际工作中哪些地方用到了它。我们先简单说下它的用法,很简单,LEN(text)、LENB(text),两个用法是一…