使用 open() 函数以文本格式打开文件和以二进制格式打开文件,唯一的区别是对文件中换行符的处理不同。

在 Windows 系统中,文件中用 “\r\n” 作为行末标识符(即换行符),当以文本格式读取文件时,会将 “\r\n” 转换成 “\n”;反之,以文本格式将数据写入文件时,会将 “\n” 转换成 “\r\n”。这种隐式转换换行符的行为,对用文本格式打开文本文件是没有问题的,但如果用文本格式打开二进制文件,就有可能改变文本中的数据(将 \r\n 隐式转换为 \n)。

而在 Unix/Linux 系统中,默认的文件换行符就是 \n,因此在 Unix/Linux 系统中文本格式和二进制格式并无本质的区别。

总的来说,为了保险起见,对于 Windows平台最好用 b 打开二进制文件,保证元数据没有被处理,对于 Unix/Linux 平台,打开二进制文件,可以用 b,也可以不用。

建议打开文件的时候用下面with更好一点
例1

with open("test.txt","rb") as f:content=f.read()print(content)

例2

f = open("hello.txt", "wb")
f.write("Hello Python!\n")
f.close()

例2存在2个问题:
1.文件读取发生异常,但没有进行任何处理;
2.可能忘记关闭文件句柄

注:
1.如果使用了with,则会自动关闭,而不管读取过程中有无发生问题都会关掉
2.而使用with语句的话,能够减少冗长,还能自动处理上下文环境产生的异常

python二进制打开(rb)和文本格式打开(r)什么区别?相关推荐

  1. idea对于文件的打开方式设置,如何将某个文件以txt文本格式打开

    打开idea的设置,找到File Types 选中Text时,红框2就显示对应的后缀名,表示红框2中的后缀名都以Text文本文件的格式(即txt文本)打开 这样我们就可以在idea上自定义不同后缀名文 ...

  2. html是一种纯文本类型语言,什么是HTML格式、纯文本格式,有什么区别呢?

    满意答案 lyqstart 推荐于 2017.11.29 采纳率:46%    等级:6 已帮助:709人 Hypertext Markup Language,中文也就是超文本链接标示语言.HTML( ...

  3. 用Python将音频内容转换为文本格式

    当对一个或多个人的谈话进行记录时,采用一种高度准确和自动化的方式将口语提取为文本非常有用.转换成文字后,便可以将其用于进一步分析或用作其他功能. 很多人学习python,不知道从何学起. 很多人学习p ...

  4. 用 Python 将音频内容转换为文本格式

    当对一个或多个人的谈话进行记录时,采用一种高度准确和自动化的方式将口语提取为文本非常有用.转换成文字后,便可以将其用于进一步分析或用作其他功能. 在本教程中,我们将使用称为AssemblyAI(htt ...

  5. python将音频转换成文字_用Python将音频内容转换为文本格式,方言可以吗?

    当对一个或多个人的谈话进行记录时,采用一种高度准确和自动化的方式将口语提取为文本非常有用.转换成文字后,便可以将其用于进一步分析或用作其他功能. 在本教程中,我们将使用称为AssemblyAI(htt ...

  6. python 二进制Plist文件转Xml格式Plist

    #获取字段类型 def gettype(value):if isinstance(value,int):if isinstance(value,bool):return 'bool'return 'i ...

  7. python中字符串前面加一个u或者r的区别

    print(r"你\n好") 结果: print(u"你\n好") 结果: 所以,如果我们要原样输出"\n"就用r"\n" ...

  8. python文本文件和二进制文件的区别_以文本格式和二进制格式打开文件,到底有什么区别?...

    以文本格式和二进制格式打开文件,到底有什么区别? 我们知道,open() 函数第二个参数是一个字符串,用于指定文件的打开方式,如果该字符串中出现 b,则表示以二进制格式打开文件:反之,则以普通的文本格 ...

  9. 以文本格式和二进制格式打开文件,到底有什么区别?

    目录 以文本格式和二进制格式打开文件,到底有什么区别? 两种格式的解码区别 文本格式open()时的隐式转换 参考资料 以文本格式和二进制格式打开文件,到底有什么区别? 我们知道,open() 函数第 ...

最新文章

  1. 在Ubuntu 8.04上安装Domino R8.02
  2. MyBatis中的大于、小于、like等符号写法
  3. 号外号外!自动化测试工具AutoRunner V4.2 新版本升级预告!
  4. 数据结构-----AVL树的旋转操作
  5. [渝粤教育] 上海交通大学 制造工艺基础 参考 资料
  6. VS 调用外部DLL时提示“无法嵌入互操作类型”
  7. dg oracle 切换模式_Oracle数据库 DGbroker三种保护模式的切换
  8. STM32之点亮LED
  9. 哈工大-操作系统的引导
  10. 完整解决Flash载入中文FLASH乱码问题
  11. 【李宏毅2020 ML/DL】P62-65 More about Auto-encoder
  12. 机器学习Scikit-Learn安装
  13. Android 生态消息推送平台介绍
  14. 数学分析:Taylor多项式
  15. 第十二课:OpenGL扩展
  16. qwidget设置背景透明_手机上设置“小小科技半透明”主题背景,效果美翻天!...
  17. OpenCV基础——threshold函数的使用
  18. peopleSoft常见错误诊断
  19. 求最小公倍数(扩展版)
  20. 液晶显示器常见、尺寸、分辨率、点距

热门文章

  1. 2022-2028年中国塑料安瓿瓶行业市场研究及前瞻分析报告
  2. 二叉树中和为某一值的路径
  3. LeetCode19. Remove Nth Node From End of List 删除链表中的倒数第n个位置的元素
  4. leetcode:2680 Remove Duplicates from Sorted Array 删除数组中的重复元素
  5. 分享2020 几个好用的ip地址归属地查询
  6. debian10 简单的bash脚本监控apache运行状态
  7. Linux系统管理必备知识之利用ssh传输文件
  8. 深度学习网络模型可视化netron
  9. 工具箱支持汽车质量人工智能
  10. ADAS车辆在行人安全方面得分很低