文件的三种打开方式及with管理文件上下文
文件的三种打开方式及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管理文件上下文的更多相关文章
- tomcat 三种部署方式以及server.xml文件的几个属性详解
一.直接将web项目文件件拷贝到webapps目录中 这是最常用的方式,Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用.如果你想要修改这个默认 ...
- CSS文件的三种引入方式
CSS的引入方式共有三种:行内样式.内部样式表.外部样式表. 一.行内样式 使用style属性引入CSS样式. 示例:<h1 style="color:red;">st ...
- 石子归并的三种打开方式——难度递增———51Node
1021 石子归并 N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价.计算将N堆石子合并成一堆的最小代价. ...
- 前端js,css文件合并三种方式,bat命令
前端js,css文件合并三种方式,bat命令 前端js文件该如何合并三个方式如下:1. 一个大文件,所有js合并成一个大文件,所有页面都引用它.2. 各个页面大文件,各自页面合并生成自己所需js的大文 ...
- android中解析文件的三种方式
android中解析文件的三种方式 好久没有动手写点东西了,最近在研究android的相关技术,现在就android中解析文件的三种方式做以下总结.其主要有:SAX(Simple API fo ...
- 转 Velocity中加载vm文件的三种方式
Velocity中加载vm文件的三种方式 velocitypropertiespath Velocity中加载vm文件的三种方式: 方式一:加载classpath目录下的vm文件 Prope ...
- Velocity中加载vm文件的三种方式
Velocity中加载vm文件的三种方式: a. 加载classpath目录下的vm文件 /** * 初始化Velocity引擎 * --VelocityEngine是单例模式,线程安全 * @th ...
- 解析Xml文件的三种方式及其特点
解析Xml文件的三种方式 1.Sax解析(simple api for xml) 使用流式处理的方式,它并不记录所读内容的相关信息.它是一种以事件为驱动的XML API,解析速度快,占用内存少.使用 ...
- linux学习之centos(二):虚拟网络三种连接方式和SecureCRT的使用
---操作环境--- 虚拟机版本:VMware Workstation_10.0.3 Linux系统版本:CentOS_6.5(64位) 物理机系统版本:win10 一.虚拟网络三种连接方式 当在V ...
随机推荐
- Make文件(一)
基本规则: 目标:依赖 (tab)规则 目标:需要生成的目标文件 依赖:生成该目标所需的一些文件 规则:由依赖文件生成目标文件的手段 tab:每条规则前必须以tab开头,使用空格不行. 例如: /** ...
- ubuntu16.04配置记录
新开一篇随笔记录ubuntu16.04配置中遇到的坑 1.安装Bumblebee(大黄蜂) Bumblebee是一款双显卡驱动,可以关闭独显,有效控制笔记本发热 第一步:安装我们的主角Bumblebe ...
- R_Studio(神经网络)BP神经网络算法预测销量的高低
BP神经网络 百度百科:传送门 BP(back propagation)神经网络:一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络 #设置文件工作区间 setwd('D:\\ ...
- SQLMAP自注入--INJECTION TECGBUQUES FINGERPRINT
-p参数 指定扫描的参数 ,使--level失效 -p“user-agent,refer”这些参数也可以通过-p来指定 sqlmap.py -u "http://127.0.0.1/muti ...
- idea为项目添加ignore文件忽略unversion的文件
最近初学Git,而且在使用的IDE是IntelliJ IDEA,发现IDEA在提交项目到本地仓库的时候,会把.idea文件夹中的内容也提交上去,这里面放的是一些项目的配置信息,包括历史记录,版本控制信 ...
- RocketMQ存储系统概要设计和源码解读
普遍消息存储技术的选型 分布式KV存储 NewSQL存储:TiDB 文件系统:RocketMQ,kafka,RabbitMQ RocketMQ:所有的message存储在一个log里,不区分topic ...
- IDEA配置常见配置
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- ES6 变量的结构赋值用途(实用技巧)
1.交换变量的值 let x=1; let y=2; [x,y]=[y,x];//x=2,y=1 2.从函数返回多个值 函数只能返回一个值,如果要返回多个值,只能将它们放在数组或者对象里返回,有了解构 ...
- 一、基础篇--1.1Java基础-MVC设计思想
MVC简介: MVC(Model View Controller) 是模型(model)-视图(view)-控制器(controller)的缩写.一种软件设计典范,用一种业务逻辑.数据.界面显示分离的 ...
- 编写个shell脚本将/home/test 目录下大于10K的文件转移到/tmp目录下
#!/bin/sh cd /home/test for i in `ls -l |awk '{if($5>10240) {print $9}}'` do mv $i /tmp done