文件的三种打开方式及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,css文件合并三种方式,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. ZooKeeper 简介说明

    1.什么是Zookeeper? Zookeeper是一个高效的分布式协调服务,它暴露了一些公用服务,比如命名/配置管理/同步控制/群组服务等.我们可以使用Zookeeper来实现比如达成共识/集群管理 ...

  2. netty实现客户端服务端心跳重连

    前言: 公司的加密机调度系统一直使用的是http请求调度的方式去调度,但是会出现网络故障导致某个客户端或者服务端断线的情况,导致很多请求信息以及回执信息丢失的情况,接着我们抛弃了http的方式,改为T ...

  3. Docker入门-常用命令

    Docker镜像操作 Docker运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker会从镜像仓库下载该镜像. 获取镜像 从Docker镜像仓库获取镜像的命令是docker pull. ...

  4. 移动端 iphone手机在中文情况下不执行keyup事件

    问题:移动端 在

  5. @RequestMapping注解学习

    1.@RequestMapping注释用于映射url到控制器类或一个特定的处理程序方法.可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. 参考地址:https://ww ...

  6. ListView 中图片错位的问题是如何产生的?

    图片错位问题的本质源于我们的 listview 使用了缓存 convertView,假设一种场景,一个 listview 一屏显示九个item,那么在拉出第十个 item 的时候,事实上该 item ...

  7. pandas中根据列的值选取多行数据

    # 选取等于某些值的行记录 用 == df.loc[df['column_name'] == some_value] # 选取某列是否是某一类型的数值 用 isin df.loc[df['column ...

  8. linux配置多个ip

    linux配置多个ip /sbin/ifconfig eth0:1 172.19.121.180 broadcast 172.19.121.255  netmask 255.255.255.0 up ...

  9. squid 3.5.2配置文件

    https://www.cnblogs.com/mchina/p/3812190.html 配置文件就加入下面这几句话: cache_mem 64 MB maximum_object_size 4 M ...

  10. JForum论坛安装以及部署(转)

    链接地址:https://www.cnblogs.com/Amos-Turing/p/7151009.html 下载JForum2.1.9 包手动放到tomcat的webapps下面, 这次打开网址: ...