文件的三种打开方式及with管理文件上下文

时间:2022-03-01 00:27:25

文件的三种打开方式及with管理文件上下文

一、文件的三种打开方式

1.1 只读

f = open(r'D:\pycharm\yjy\上海python学习\456.txt','r',encoding='utf8')
data = f.read() #读取文件
print(data)
f.close()

读的其他语法

print(1,f.readline())  # 逐行读
print(f.readable()) # 是否可读 # True

ps:如果我们需要读文件里面的每一行代码,我们可以用for循环,举个栗子

for i in f:
print(i)
f.close

1.2 只写

f = open(r'D:\pycharm\yjy\上海python学习\456.txt','w',encoding='utf8')   #清空原来的文件后,重新写入
f.write('yanjiayi')
f.close()

写的其他语法

print(f.writable())  #可写 True
f.writelines(['sdklfj','sdkfjksldf']) #会将列表拼为字符串写出来

1.3 追加

f = open(r'D:\pycharm\yjy\上海python学习\456.txt','a',encoding='utf8')  #不会删除原来的文件,在后面直接写入
f.write('meilidexiaokeai')
f.close()

二、with管理上下文

2.1 文本模式

2.1.1 文本模式(t)

f = open('test.py','rt')
data = f.read()
print(data)

2.1.2进制模式(b)

fw = open('test.png','wb')  # encoding是为了让二进制代码变成文本所需要的,所以b模式不需要encoding
fw.write(img)

2.2 with……open……as

with……open……as相对于open好的一点就是可以自动关闭文件

with open('test.py', 'rt', encoding='utf8') as fr1
data1 = fr1.read()
print('data1', data1) #不需要f.close
with open('test.py', 'rt', encoding='utf8') as fr2, \
open('test.txt', 'rt', encoding='utf8') as fr1, \
open('test.png', 'rb') as fr3:
# 可以多个文件一起打开,只需要一个with就好,但是每个文件前面都需要加open,也要写as!“\”表示他们爱一行,只是写不下了才用“\”这个标识分开写的,“\”他只是要告诉python解释器这是个特殊意义的符号。
data1 = fr1.read()
print('data1', data1)
data2 = fr2.read()
print('data2', data2)
data3 = fr3.read()
print('data3', data3)

文件的三种打开方式及with管理文件上下文的更多相关文章

  1. tomcat 三种部署方式以及server.xml文件的几个属性详解

    一.直接将web项目文件件拷贝到webapps目录中 这是最常用的方式,Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用.如果你想要修改这个默认 ...

  2. CSS文件的三种引入方式

    CSS的引入方式共有三种:行内样式.内部样式表.外部样式表. 一.行内样式 使用style属性引入CSS样式. 示例:<h1 style="color:red;">st ...

  3. 石子归并的三种打开方式——难度递增———51Node

    1021 石子归并    N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价.计算将N堆石子合并成一堆的最小代价.   ...

  4. 前端js&comma;css文件合并三种方式&comma;bat命令

    前端js,css文件合并三种方式,bat命令 前端js文件该如何合并三个方式如下:1. 一个大文件,所有js合并成一个大文件,所有页面都引用它.2. 各个页面大文件,各自页面合并生成自己所需js的大文 ...

  5. android中解析文件的三种方式

    android中解析文件的三种方式     好久没有动手写点东西了,最近在研究android的相关技术,现在就android中解析文件的三种方式做以下总结.其主要有:SAX(Simple API fo ...

  6. 转 Velocity中加载vm文件的三种方式

    Velocity中加载vm文件的三种方式   velocitypropertiespath Velocity中加载vm文件的三种方式:    方式一:加载classpath目录下的vm文件 Prope ...

  7. Velocity中加载vm文件的三种方式

    Velocity中加载vm文件的三种方式: a.  加载classpath目录下的vm文件 /** * 初始化Velocity引擎 * --VelocityEngine是单例模式,线程安全 * @th ...

  8. 解析Xml文件的三种方式及其特点

    解析Xml文件的三种方式 1.Sax解析(simple api  for xml) 使用流式处理的方式,它并不记录所读内容的相关信息.它是一种以事件为驱动的XML API,解析速度快,占用内存少.使用 ...

  9. linux学习之centos(二):虚拟网络三种连接方式和SecureCRT的使用

    ---操作环境--- 虚拟机版本:VMware Workstation_10.0.3 Linux系统版本:CentOS_6.5(64位) 物理机系统版本:win10  一.虚拟网络三种连接方式 当在V ...

随机推荐

  1. Web APi之控制器选择Action方法过程(九)

    前言 前面我们叙述了关于控制器创建的详细过程,在前面完成了对控制器的激活之后,就是根据控制器信息来查找匹配的Action方法,这就是本节要讲的内容.当请求过来时首先经过宿主处理管道然后进入Web AP ...

  2. python download

    今天下载 python3 , 从官网下 速度 平均 十几K,网上 搜了下.提供的下载地址 几乎都是 官网的. 于是 下了个 百度同步盘,做 公开分享. 提供给 大家下载,速度 有 300 多K,提高了 ...

  3. 关于Bugzilla WebService接口

    参考:http://www.bugzilla.org/docs/3.2/en/html/api/Bugzilla/WebService.html http://www.bugzilla.org/doc ...

  4. &dollar;&lpar;window&rpar;&period;load&lpar;function&lpar;&rpar; &lbrace;&rcub;&rpar;和&dollar;&lpar;document&rpar;&period;ready&lpar;function&lpar;&rpar;&lbrace;&rcub;&rpar;的区别

    JavaScript 中的以下代码 : Window.onload = function (){// 代码 }  等价于  Jquery 代码如下: $(window).load(function ( ...

  5. pycharm安装

    license server http://idea.lanyus.com

  6. HDU4496&lpar;并查集&rpar;

    D-City Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Subm ...

  7. &lbrack;LeetCode&rsqb; Friend Circles 朋友圈

    There are N students in a class. Some of them are friends, while some are not. Their friendship is t ...

  8. 线性表的链式存储结构的实现及其应用&lpar;C&sol;C&plus;&plus;实现&rpar;

    存档----------- #include <iostream.h> typedef char ElemType; #include "LinkList.h" voi ...

  9. 关于容器类型数据的强转一共&colon;str&lpar;&rpar; list&lpar;&rpar; set&lpar;&rpar; tuple&lpar;&rpar; dict&lpar;&rpar; 都可以转换成对应的数据类型 &sol;Number 数据类型的强转一共&colon; int&lpar;&rpar; bool&lpar;&rpar; flaot&lpar;&rpar; complex&lpar;&rpar; 都可以转换成对应的数据类型

    # ###强制转换成字典类型 # 多级容器数据:该类型是容器数据,并且里面的元素还是容器类型数据 # ###二级容器 # 二级列表 listvar = [1,3,4,5,[6,7,8,9]] res ...

  10. extJs相关名字解释

      1.initComponent 初始化部件启动 2.defaults : Object defaults属性可以包含任意个name/value属性对,这些属性将会被添加到每一个元素中...例如, ...