首页 > 其他分享 >控制文本读写内容的模式

控制文本读写内容的模式

时间:2023-12-05 19:46:30浏览次数:32  
标签:read res 读写 模式 源文件 文本 open

控制文本读写格式

  • t(默认的):文本模式
    • 读写都是以字符串的为单位的
    • 只能针对文本文件
    • 必须加入encoding参数
  • b:二进制模式
    • 读写文件都是以bytes/二进制为单位
    • 可以针对所有的文件
    • 不可以加入encoding参数
  • 前提:
    • b / t模式都不能单独使用,必须与r / w / a之一结合使用。

(1)t模式

  • t 模式:默认方式,我们指定的文件的打开模式就是r / w / a,默认的就是rt / wt / at。
# t模式
#  r    w   a 默认的就是rt   wt  at
# with open('01.txt','rt',encoding='utf-8') as  f:
#     res=f.read()
#     print(res)#syh
#     print(type(res))#<class 'str'>

# with open('01.txt','wt',encoding='utf-8') as  f:
#     res='hello world'
#     f.write(res)#写入的也必须为字符串类型
  • 强调:t 模式只能用于操作文本文件,无论读写,都应该以字符串为单位,而存取硬盘本质都是二进制的形式,当指定 t 模式时,内部帮我们做了编码与解码。

(2)b模式

  • b 模式读写都是二进制单位。
# b模式
#
# with open('01.txt','rb') as  f:
#     res=f.read()
#     print(res)#b'hello world'
#     print(type(res))#读出时为bytes类型

# with open('01.txt','wb') as  f:
#     res='苏毅航'
#     res1=res.encode('utf-8')#将字符串转为bytes数据类型
#     f.write(res1)#在b 模式下写入文件时,必须是bytes类型
  • 强调:b模式对比t模式
    • 在操作纯文本文件方面t模式帮我们省去了编码与解码的环节,b模式则需要手动编码与解码,所以此时t模式更为方便。
    • 针对非文本文件(如图片、视频、音频等)只能使用b模式。

(3)练习

编写拷贝工具

#源文件路径为:D:\old boy\python\python28基础\day10\girl.jpg
#新文件路径为:D:\old boy\python\python28基础\day10\img\girl.jpg


#编写拷贝工具
#1.先写入源文件路径
old=input("源文件路径为:")
#2.再写入拷贝的新文件路径
new=input('新文件路径为:')
#3.先读取源文件的内容,再将源文件的内容写入新的文件中
with open(old,'rb')as read_f,open(new,'wb') as write_f:
    write_f.write(read_f.read())

标签:read,res,读写,模式,源文件,文本,open
From: https://www.cnblogs.com/suyihang/p/17877995.html

相关文章

  • android之使用可编辑和不可编辑的提示/文本编辑文本之Android
    请您参考如下方法: 整个东西不是编辑文本,而是布局。您可以按如下方式实现该效果。 Java<LinearLayoutandroid:id="@+id/container"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizo......
  • 《软件需求模式》阅读笔记01
     软件需求这门课课程要求精读一门关于软件需求方面的书,我选择了《软件需求模式》这本书,从这本书来了解一下软件需求的一些流程以及需要软件工作人员做好那些事情。第1章主要介绍了什么是需求以及我们应该如何去得到他们。 需求的概念:定义系统需要做什么,而不是怎么去做。我的理......
  • 小谈设计模式(11)—模板方法模式
    (小谈设计模式(11)—模板方法模式)主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。希望各位可以监督我,我们一起学习进步,加油,各位。模板方法模式这是一种行为型设计模式,用于定义算法的框架,将算法的具体实现延迟到子类中。角......
  • 使用分布式事务 Seata 的 AT 模式
    有了上篇博客实现XA模式的基础,本篇博客在实现AT模式时,不需要修改任何代码,只需要增加一张数据库表,修改以下application.yml配置即可实现。AT模式也是分两个阶段提交的事务模型,它缺弥补了XA模型中资源锁定周期过长的问题。其实现的两个阶段的工作原理如下:第一阶段注册分......
  • MySQL系列之读写分离架构——Atlas介绍、安装配置、Atlas功能测试、生产用户要求、Atl
    文章目录1.Atlas介绍2.安装配置3.Atlas功能测试4.生产用户要求5.Atlas基本管理6.自动分表7.关于读写分离建议1.Atlas介绍Atlas是由Qihoo360,Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它是在mysql-proxy0.8.2版本的基础上,对其......
  • [香橙派开发系列]输入模式和上拉下拉
    目录前言一、设置输入模式二、读取端口电平三、配置上拉下拉电平1.上拉输入2.下拉输入3.设置函数最后前言前面说了一下输出模式,这一章说一下输入模式,学完输入模式后我们就可以用一个软件模拟IIC让OLED0.96寸的显示屏显示内容了。一、设置输入模式前面说过设置gpio的模式的函数......
  • VMware 虚拟机的三种网络工作模式
    目录介绍桥接模式桥接模式网络设置NAT模式实际操作中注意事项Host-Only介绍vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。默认情况下,当安装完VMware虚拟机软件时,进入vmware,在选项栏的"编辑"下的"虚拟网络......
  • 设计模式之外观模式
    1.定义提供了一个统一的接口,用来访问子系统中的一组接口2.口语化表述工厂里组装台灯,流程、配件等有多种方式,每种台灯有自己的生产线现在,需要某一种台灯,一种方式是直接去找这个台灯的生产线生成,这会令人烦恼,因为寻找是一件无聊而繁琐的事情另一种方式是成立一个工厂前台,需要......
  • 在Linux系统中通过 vim 进行文本替换(转)
    在Linux系统中通过vim进行文本替换本文转自:https://www.cnblogs.com/wind-wang/p/5768000.html在vim中,可以通过:setnu或:setnumber的命令来显示文本的行号在VIM中进行文本替换:1.替换当前行中的内容::s/from/to/(s即substitude):s/from/to/:将......
  • 深入理解HarmonyOS UIAbility:生命周期、WindowStage与启动模式探析
    本文分享自华为云社区《深入理解HarmonyOSUIAbility:生命周期、WindowStage与启动模式探析》,作者:柠檬味拥抱。UIAbility组件概述UIAbility组件是HarmonyOS中一种包含UI界面的应用组件,主要用于与用户进行交互。每个UIAbility组件实例对应最近任务列表中的一个任务,可以包含多个页......