文件读写中后面的参数:w,r,wt,rt,wb,rb,都是python里面文件操作的模式。

1、w是写模式,r是读模式。

2、t是windows平台特有的所谓text mode(文本模式),区别在于会自动识别windows平台的换行符。类Unix平台的换行符是\n,而windows平台用的是\r\n两个ASCII字符来表示换行,python内部采用的是\n来表示换行符。rt模式下,python在读取文本时会自动把\r\n转换成\n.wt模式下,Python写文件时会用\r\n来表示换行。

3、w和wt是一们的,r和rt是一样的,t是默认参数,可以省略的,写入或读取时的模式,如rb就是以二进制形式读取。如下图:

字符串转二进制的办法

bytes(字符串,encoding='编码')

字符串.encode('编码')

主要通过这两种办法可以让字符串转为bytes类型

为什么要用二进制的读写?

因为图片视频不是字符串方式能显示的,所以只能用b的方式来.

另外二进制数据可以跨平台

在windows中的换行符是\r\n
在python代码中, 如果以如果以w方式写入:
f = open('./abcd', "w")
f.write('abc\nabcd')
f.close()
文本w方式写入时, 遇到\n自动替换成\r\n,以二进制文本读:>> > f = open('./abcd', 'rb')
>> > print(f.read())
结果:
b'abc\r\nabcd'以文本读:>> > f = open('./abcd', 'r')
>> > print(f.read())
结果:
abc
abcd综上可知, 只文本w方式写入时, 遇到\n自动替换成\r\n,
所以用二进制读取时, 显示\r\n的格式, 自然以文本读时, 会自动换行如果以wb方式写入:
f = open('./abcd', "wb")
f.write('abc\nabcd'.encode("utf-8"))
f.close()以二进制文本读:
f = open('./abcd', "rb")
print(f.read())结果: 'abc\nabcd'以文本读:
f = open('./abcd', "r")
print(f.read())结果(换行): abc
abcd因为这种情况是二进制方式写入的, 所以只写入了一个\n, 而只有一个\n在windows中
并不会被识别为换行符,
所以当以rb的方式读取时, 结果是
'abc\nabcd'
当以r的方式读取时, 又自动将\n识别成换行符, 所以结果时对于
Python
3
环境:r:Python
将会按照编码格式进行解析,read()
操作返回的是str
rb:也即
binary
mode,read()
操作返回的是bytes也就是说, 如果以文本方式写入的文件, 无需制定编码.
而以二进制文本写入时, 由于写入的内容要求为bytes,所以通过str.encode('charset')来返回bytes
---------------------
作者:vitrovitro
来源:CSDN
原文:https://blog.csdn.net/yizhuanlu9607/article/details/78084266
版权声明:本文为博主原创文章,转载请附上博文链接!

0. EOL(End-Of-Line)

区别主要在 EOL 的处理方式不同。对于不同的操作系统而言,

  • Unix:\n
  • Mac:\r
  • Windows:\r\n

对于 Python 语言,通过如下语句进行查询:

>> import os
>> os.linesep
'\r\n

1. 不同的操作系统

对于 Windows 系统而言,含有 brbwbr+b) 表示以二进制形式打开文件。windows 下的 Python 对文本文件(text files)和二进制文件(binary files)的处理方式不同,

2. Python 2 vs Python 3

对于 Python 3 环境:

  • r:Python 将会按照编码格式进行解析,read() 操作返回的是str
  • rb:也即 binary mode,read()操作返回的是bytes

文本文件中的 回车 在不同操作系统中所用的字符表示有所不同。

Windows: 
\r\n

Linux/Unix: 
\n

Mac OS: 
\r

python读写文件 open()中 r rb rt

1、rt模式下,python在读取文本时会自动把\r\n转换成\n.

使用’r’一般情况下最常用的,但是在进行读取二进制文件时,可能会出现文档读取不全的现象。

2、使用’rb’按照二进制位进行读取的,不会将读取的字节转换成字符 
二进制文件就用二进制方法读取’rb’

3、r为仅读取 w为仅写入 a为仅追加

r+为可读写两种操作 w+为可读写两种操作(会首先自动清空文件内容) a+为追加读写两种操作 
以上三种操作方式均不可同时进行读写操作
---------------------

Python打开文件时'w'与'wb','r'与'rb'的区别(2019年1月3日)相关推荐

  1. python打开文件时'w'与'wb'的区别,'r'与'rb'的区别

    在windows中的换行符是\r\n 在python代码中, 如果以如果以w方式写入: f = open('./abcd', "w") f.write('abc\nabcd') f ...

  2. python打开文件时,找不到文件 FileNotFoundError: [Errno 2] No such file or directory报错

    小白一枚,记录学习错误,共同进步 python打开文件时,找不到文件 FileNotFoundError: [Errno 2] No such file or directory报错 UnicodeD ...

  3. python打开文件

    * open():open(file, mode='r', buffering=- 1, encoding=None, errors=None, newline=None, closefd=True, ...

  4. python打开文件w和wb,r和rb的区别

    是w表示正常写入 wb表示二进制写入 r表示正常 rb表示二进制读取 w和r读取 代码如下 fp=open('/abc','w') fp.write('ab\nas') fp.close() fp=o ...

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

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

  6. python打开方式错误_浅谈python 调用open()打开文件时路径出错的原因

    昨晚搞鼓了一下python的open()打开文件 代码如下 def main(): infile =open("C:\Users\Spirit\Desktop\bc.txt",'r ...

  7. python open找不到文件的原因_浅谈python 调用open()打开文件时路径出错的原因

    昨晚搞鼓了一下python的open()打开文件 代码如下 def main(): infile =open("C:\Users\Spirit\Desktop\bc.txt",'r ...

  8. python中打开文件时只允许写入的模式是_在open函数中访问模式参数使用()表示打开一个文件只用于写入。(4.0分)_学小易找答案...

    [单选题]溢流坝属于( ) [单选题]在重力坝的底部沿坝轴线方向设置大尺寸的空腔,即为( ) [单选题]模式()的用途是打开一个文件用于追加.如果该文件已存在,文件指针将会放在文件的结尾.(4.0分) ...

  9. 反汇编软件IDA V7.2打开文件时python.dll error: 找不到指定的模块

    #反汇编软件IDA V7.2打开文件时问题: LoadLibrary(C:\Program Files\IDA 7.2\plugins\python.dll) error: 找不到指定的模块. C:\ ...

最新文章

  1. excel实现统计词频功能
  2. 【翻译】为什么 goroutine 的栈内存无穷大?
  3. Uploadify3.2中文提示
  4. 修改dts后重编译_「正点原子FPGA连载」第二十章另一种方式编译ZYNQ镜像
  5. C++PrimerPlus学习——第十四章编程练习
  6. jvm相关參数,调优
  7. Java-重载和重写的区别
  8. python 识别 None,NaN,null,‘‘,‘ ‘ 等无意义的值
  9. Exchange 2010 (四) CAS Array部署
  10. 【设计模式笔记】代理模式
  11. 用批处理开启或关闭windows 服务
  12. Redis中的lua脚本
  13. 山东理工大学SDUT - ACM OJ 题: Python代码 及分析
  14. Blinky实例分析来认识一下QP状态机
  15. java猜拳小游戏心得体会_java实现猜拳小游戏
  16. 最优化问题——线性规划模型
  17. TensorFlow基础之模型建立与训练:线性回归、MLP多层感知机、卷积神经网络
  18. 【python爬虫】爬取Bing词典的单词存到SQLite数据库(加了pyqt5界面显示)
  19. 从0开始复健——C的枚举
  20. JSP常用内置对象概述

热门文章

  1. 实现KMP字符串匹配
  2. 【计算机网络课程设计】内网穿透、搭建FTP服务器(局域网和广域网)以及对于花生壳发送X11包得一些推测
  3. 庞果网之寻找直方图中面积最大的矩形
  4. 817-2021年第一题
  5. iOS安全攻防之越狱设备检测
  6. 网络流:最小费用最大流问题
  7. 分糖果【第五届】【省赛】【B组】 C++解法
  8. 二年级计算机课总结,二年级上学期教学总结
  9. 阿里企业邮箱标准版、集团版和尊享版有什么区别?
  10. 基于jsp+mysql+ssm游戏爱好者论坛交流设计-计算机毕业设计