在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

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

  1. python模式匹配算法_详解Python 最短匹配模式

    问题 你正在试着用正则表达式匹配某个文本模式,但是它找到的是模式的最长可能匹配. 而你想修改它变成查找最短的可能匹配. 解决方案 这个问题一般出现在需要匹配一对分隔符之间的文本的时候(比如引号包含的字 ...

  2. python中打开文件时只允许写入的模式是_详解python中各种文件打开模式

    在python中,总的来说有三种大的模式打开文件,分别是:a, w, r 当以a模式打开时,只能写文件,而且是在文件末尾添加内容. 当以a+模式打开时,可以写文件,也可读文件,可是在读文件的时候,会发 ...

  3. python中以只读形式打开文件的模式是_详解python中各种文件打开模式

    在python中,总的来说有三种大的模式打开文件,分别是:a, w, r 当以a模式打开时,只能写文件,而且是在文件末尾添加内容. 当以a+模式打开时,可以写文件,也可读文件,可是在读文件的时候,会发 ...

  4. python整数类型没有取值范围限制_详解Python中6种数据类型

    Python中数据类型主要有六种:数字类型,字符串类型,元组类型,列表类型,文件类型和字典类型,我们今天先介绍前四种类型. 假如在Python程序中,出现了"010",那么这个&q ...

  5. python怎么下载图片怎么保存到本地_详解Python下载图片并保存本地的两种方式

    一:使用Python中的urllib类中的urlretrieve()函数,直接从网上下载资源到本地,具体代码: import os,stat import urllib.request img_url ...

  6. Java中final类是存放在哪_详解Java中的final关键字

    1 修饰属性或者变量 无论属性是基本类型还是引用类型,作用都是变量里面存放的"值"不可变 经常和static关键字一起使用,作为常量 1 基本类型,变量放的是实实在在的值,如1,& ...

  7. python函数定义中参数列表里的参数是_详解Python函数中参数带星号是什么意思

    函数的参数使用除了常规的位置参数和关键字参数外,还支持可变个数的函数参数,这种支持可变个数的参数方法称为参数收集,对应的参数称为收集参数. 一.参数收集的定义 Python的函数支持可变不定数量的参数 ...

  8. python文件对象是可以迭代的_详解python可迭代对象、迭代器和生成器

    可迭代对象 什么是可迭代对象?顾名思义就是可以迭代的一个对象,再通俗点就是可以被for循环遍历的对象,如常用的list.str等数据类型.我们可以使用isinstance来判断这个数据是否是可迭代对象 ...

  9. python中的str方法和repr方法_详解Python中__str__和__repr__方法的区别

    对我当前工程进行全部测试需要花费不少时间.既然有 26 GB 空闲内存,为何不让其发挥余热呢? tmpfs 可以通过把文件系统保存在大内存中来加速测试的执行效率. 但优点也是缺点,tmpfs 只把结果 ...

最新文章

  1. mpvue 小程序如何开启下拉刷新,上拉加载?
  2. 手把手教你实现一个 Vue 进度条组件!
  3. microsoft 官方学习资源
  4. #191 sea(动态规划)
  5. JAVA入门级教学之(你是否理解HelloWorld的这段经典的代码的注释)
  6. 架构部署002--城域网_骨干网
  7. python内存池机制,python基础—12python内存管理机制
  8. Iperf性能测试的问题小结
  9. 数据库之SQL笛卡尔积
  10. OpenCV_15绘制朱利亚(Julia)集合图形
  11. FeedDemon 2.6.0.20 Final
  12. 周昆 浙江大学计算机学院院长,浙江大学周昆教授来校作学术报告
  13. 常对象只能调用常函数成员 c++
  14. AndroidTV语音搜索
  15. uni-app分享app和公众号遇到的坑(仅个人之见,如有错误请给指出)
  16. python爬虫某招聘数据进行可视化
  17. 9.1 多元微分学及应用——多元函数的基本概念
  18. 监控 prometheus及其部署及server discovery,alertmanager,grafana(更新结束)
  19. linux内核看门狗关闭方法,详解linux 看门狗驱动编写
  20. 计算机应用基础大纲2019,计算机应用基础考试大纲(2019 年版)电子刊物

热门文章

  1. Linux 源码安装 Python3 和 pip3
  2. Python编程从入门到实践~字典
  3. java web响应式框架_Web开发的十佳HTML5响应式框架
  4. 手机h5可以用ifreme_折叠照片特效,用手机修图软件就可以实现
  5. STM32F0使用LL库实现PWM输出
  6. 在Amazon FreeRTOS V10中使用运行时统计信息
  7. [转载] --- Fastjson1.2.68版及以下全版本远程代码执行漏洞通告
  8. CoreAnimation编程指南(简介)
  9. android 名片识别 简书,iOS 自己实现 名片识别 三 图片处理
  10. c语言将数据写不入文件,求大神看看为什么不能将数据写入文件