Python之路Day08
文件操作
open() -- 打开
open通过Python控制操作系统打开文件
f=open('文件路径',mode='r',encoding='utf-8')
mode -- 不写就默认是r
f -- 文件句柄
file -- 文件位置
encoding -- 文件编码
r
print(f.read()) -- 全部读取
文件只能读取一次
print(f.read(3)) -- 按照字符读取(读不到最后一位)
f.readline() -- 读取一行,默认尾部有一个\n
f.readlines() -- 一行一行读取,全部储存在列表中
路径转义:
都改成
"\\"在路径开头加r
路径:
绝对路径:从磁盘(C盘)开始查找
相对路径:相对于某个文件进行查找
rb
f=open('文件路径',mode='rb')
字节操作时,不能指定encoding编码
f.read()
f.read(3) -- 按照字节读取
f.readline()
f.readlines()
r 和rb的区别:
r需要指定encoding,rb不需要
r中的read(3)按照字符读取,rb模式中按照字节读取
read 和 readlines 如果文件较大时,会出现内存溢出
解决方案:文件较大时使用for循环
f=open('文件路径',mode='r',encoding='utf-8')
for i in f:
print(i.strip()) #面试题
w
ff=open('a1',mode='w',encoding='utf-8')
ff.write('123') #写的内容必须是字符串有文件就用当前文件,没有文件就创建一个文件
写的内容必须是字符串
w操作:-- 清空写(写的是文本)
先清空文件(打开文件时清空)
写入内容
wb
清空写(写字节)
ff=open('a1',mode='w')
a
追加写
有文件就用用当前文件,没有就创建一个文件
ab
追加写字节
读写+操作
r+ 读写
f=open('b1',mode='r+',encoding='utf-8')
f=open('b1',mode='r+',encoding='utf-8')
f.write('今天是周一')
print(f.read()) #坑,只能先读后写
w+ 写读
f.seek() -- 移动光标
f=open('b1',mode='r+',encoding='utf-8')
f.write('今天是周一')
f.seek(0)
print(f.read())
a+ 追加写、读
坑:永远在末尾加,移动光标写内容还是在末尾追加
f=open('b1',mode='r+',encoding='utf-8')
f.write('今天是周一')
f.seek(0)
f.write('啊啊啊啊')
print(f.read())
其他操作
f.seek() -- 移动光标(光标是按照字节移动)
seek(0,0) -- 移动光标到文件头部
seek(0,1) -- 移动光标到当前位置
seek(0,2) -- 移动光标到文件末尾
f.tell() -- 查看光标(按照字节计算)
修改文件:
import os #操作系统交互接口
考点:
创建一个新的文件
读取旧的文件内容
进行替换修改
将修改的内容写入到新的文件中
将文件关闭
将文件名进行修改
将文件中全部内容读取容易导致内存溢出
with open('a1','r',encoding='utf-8')as f:
自动关闭文件
同时操作多个文件
with open('a1','r',encoding='utf-8')as f,open('a2','r',encoding='utf-8')as f1:
#上下文管理
文件操作目的
持久化:永久存储
Python之路Day08的更多相关文章
- 初学python之路-day08前期总结
# 1# 计算机原理:控制器 运算器 存储器 input设备 output设备 IO流# 三大核心:CPU 内存 硬盘 # 内存分布:栈区 与 堆区# 如二进制与十进制的转换,如1111转成十进制为1 ...
- 初学python之路-day08
#学习了编码后,还要了解三种字符串.# 一.# 普通字符串:u''以字符作为输出单位,# print(u'abc') # 用于显示abc# # 二进制字符串:b'' 二进制字符串以字节作为输出单位# ...
- Python之路【第一篇】python基础
一.python开发 1.开发: 1)高级语言:python .Java .PHP. C# Go ruby c++ ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...
- Python之路
Python学习之路 第一天 Python之路,Day1 - Python基础1介绍.基本语法.流程控制 第一天作业第二天 Python之路,Day2 - Pytho ...
- python之路 目录
目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...
- Python之路【第十九篇】:爬虫
Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...
- Python之路【第十八篇】:Web框架们
Python之路[第十八篇]:Web框架们 Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...
- Python之路【第十七篇】:Django【进阶篇 】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
- Python之路【第十六篇】:Django【基础篇】
Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...
随机推荐
- kali中安装中文输入法ibus
1.控制台输入命令: apt-get install ibus-pinyin 出现选择都选yes 2.安装完毕后输入命令,重启虚拟机: reboot 3.打开 输入法,如图中2处input meth ...
- Linux下通过二进制方式安装mysql5.7版本和系统优化
本文主要介绍MySQL二进制软件包的安装/启动/关闭过程. 也许有人要问为什么要选择二进制的安装方式呢? 其实答案很简单,官方版本中已经把所有功能都配置好了,我们可以很方便地拿来使用. 官方MySQL ...
- Linux部署.NetCore站点 使用Supervisor进行托管部署
前言 之前终于在Linux上部署好了.NetCore站点,但是这个站点非常“脆弱”.当我的ssh连接关闭或者我想在当前连接执行其他命令时候就必须关闭dotnet站点的执行程序.这显然不是我想要达到的效 ...
- [MySQL] mysql索引的长度计算和联合索引
1.所有的索引字段,如果没有设置not null,则需要加一个字节.2.定长字段,int占4个字节.date占3个字节.char(n)占n个字符.3.变长字段,varchar(n),则有n个字符+两个 ...
- PMP-番外篇-PMP工具与技术目录
########################################################### 这里先总结所有工具和技术,让大家有一个整体的概念. 也可以当作一个工具和技术查询 ...
- 爬虫数据存储——安装docker和ElasticSearch(基于Centos7)
爬虫数据存储--安装docker和ElasticSearch(基于Centos7) 先决条件 操作系统要求 要安装Docker Engine-Community,您需要一个CentOS 7的维护版本. ...
- C语言再学习part1-宏观认识C语言
天下莫柔弱于水,而攻坚强者莫之能胜,以其无以易之也.弱之胜强,柔之胜刚,天下莫不知行,莫能行. —老子 我近来每天都在坚持读书,所以我一直沉浸于古人的智慧中无法自拔.所以如果我这篇博文被你有幸看到,那 ...
- 1级搭建类104-Oracle 12cR2 单实例 FS(阿里云)公开
项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...
- .net core 3.0配置跨域
1.ConfigureServices services.AddCors(c => { // 配置策略 c.AddPolicy("Policy", policy => ...
- Android实战项目——家庭记账本(二)
今天主要是对昨天做的添加账单信息的功能做了完善,实现了数据库的相关操作,如图是对已添加的账单信息的总结显示. 目前实现了通过日期进行汇总的功能,如上图中的各项item就是通过对所有账单信息进行按日期汇 ...