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 ...
随机推荐
- jvm 内存结构
jvm 内存结构 graph TB A(jvm)-->E(类加载器系统) A-->B(运行时数据区) A-->D(本地库接口) A-->C(执行引擎) B-->虚拟机栈 ...
- spring cloud springboot 框架源码 activiti工作流 前后分离 集成代码生成器
1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.service等完整模块2. ...
- Android中使用Intent的Action和Data属性实现点击按钮跳转到拨打电话和发送短信
场景 点击拨打电话按钮,跳转到拨打电话页面 点击发送短信按钮,跳转到发送短信页面 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程 ...
- 同时安装了python和3,pycharm如何切换版本
1.打开pycharm 2.进入 File->Setting->Project:你的项目名->Project Interpreter 3.通过Project Interpreten ...
- 共同战“疫”,CODING 帮助研发团队高效协同
新冠疫情下,家里蹲的日子继续延长.部分企业虽然受困于不能回公司办公,但都陆续开启了远程协作办公,远程协作领域被推上了风口.但「远程协同」看不见摸不着工作伙伴,个人的自律能力也无法保证,难免出现沟通响应 ...
- 在视觉可视化中如何使用ScaleBreaks-比例中断
从lightningChart V8开始,这项图表控件产品开始支持X轴的Scale break功能. 这个功能的主要作用是排除选定的X轴范围,例如互动交易时间/日期或者机器停产时间等.如果有一部分的数 ...
- JS淘宝浏览商品
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- SqlServer视图查询效率测试
一. 测试背景开发一个项目,数据库用的是sqlserver.帐号表数据有一两百万,不算大,也不算小.在考虑是否要使用视图,担心效率,百度了下资料,众说纷纭,好吧,实践是最好的证明,那么我们就来测试吧 ...
- 安装PHP到CentOS(YUM)
运行环境 系统版本:CentOS Linux release 7.3.1611 软件版本:PHP-7.2 硬件要求:无 安装过程 1.配置YUM源 [root@localhost ~]# rpm -i ...
- MySQL概述及入门(一)
MySql概述及入门(一) 什么是MySQL? MySQL是当今主流的关系型数据库管理系统(记录是有行有列的数据库) , 可以与Oracle 和SQL Server 竞争 , 是最好RDBMS( ...