python day08
ascii码转换成字符:ord()
字符串转换成ascii:chr()
三种字符串
1、普通字符串 --以字符作为输出单位
print(u'abc') 显示给用户看的字符串
2、二进制字符串 --以字节作为输出单位
print(b'\xe4\xbd\x95\xe8\x8b\x8f\xe5\x81\xa5') 用于传输用
3、原义字符串 --以字符作为输出单位,所有普通字符串以原义输出
print('run\tagain\nstop')
print(r'run\tagain\nstop') 取消转义 不会自动换行,保持原字符串
文件操作的三步骤
1、打开文件 硬盘空间被操作系统持有,文件对象被应用程序持有
f = open('a.txt','r',encoding='utf-8')
2、对文件进行操作
date = f.read()
3、关闭文件 释放文件(释放操作系统对硬盘空间的持有)
f.close()
文件基本的读
f = open('a.txt','r',encoding='utf-8')
date = f.read() -->一次性把所有文件都读出来
date = f.read(10) -->一次读十个字符
date = f.readline() -->一次读一行
date = f.readlines() -->分行一次性读出来,换行标识作为换行依据,存在同一个列表里。
f.close()
文件基本的写
w = open('a.txt','w',encoding='utf-8')
w.write('abc') -->直接写入文件
w.flush() -->将文件保存到文件夹
w.write('opq\nrst') -->遇到换行标识就会自动换行
w.writelines(list) -->一次添加多行,多行内容必须添加在同一个列表里,并且要标上标识符\n
w.close() -->1、将文件保存到内存中 2、释放硬盘空间
with…open()语法
为了整合优化文件资源的打开与释放
--在with的缩进内操作文件,一旦退出缩进,就会释放硬盘空间
part1:
with open('a.txt','r',encoding='utf-8') as f:
date = f.read() #进行一些对文件的操作指令
#一旦退出缩进,硬盘空间就被释放
part2
with open('a.txt','r',encoding='utf-8') as f,open('b.txt','r',encoding='utf-8') as v: #同时打开两个文件
#对两个文件的操作
part3:
with open('a.txt','r',encoding='utf-8') as f:
with open('b.txt','r',encoding='utf-8') as v:
date = f.read()
date = v.read()
date = f.read() #可以进行操作
date = v.read() #不可以操作
文件的操作模式
主模式 r | w | a | x
从模式 t | b | +
r:只能读取已经存在的文件,不存在就报错
w:如果文件存在,就先清空再写,如果文件不存在,就新建再写
a:如果文件存在,就在文件内容的末尾继续添加写,如果文件不存在,就新建再写
x(了了解):只能新建文件再写,如果文件存在就报错
t:默认的从模式,以字符进行操作
b:以字节进行操作
+:可读可写
rt:文件必须存在,不存在就报错,文件操作采用字符方式,简写r
wt:文件可以存在,也可以不存在,存在则清空再写入,不存在则创建写入,文件操作采用字符方式,简写w
at:文件可以存在,也可以不存在,存在则再文件内容末尾进行添加,不存在则创建写入,文件操作采用字符方式,简写a
rb:文件必须存在,不存在就报错,文件操作采用字节方式
wb:文件可以存在,也可以不存在,存在则清空再写入,不存在则创建写入,文件操作采用字节方式
ab:文件可以存在,也可以不存在,存在则再文件内容末尾进行添加,不存在则创建写入,文件操作采用字节方式
r+t:文件必须存在的可读可写,默认从头开始替换写,文件操作采用字符方式
w+t:可读可写,文件存在则先清空再写,文件不存在就先创建再写,文件操作采用字符方式
a+t:可读可写,文件存在则在文件内容末尾追加写,文件不存在就先创建再写,文件操作采用字符方式
r+b:文件必须存在的可读可写,默认从头开始替换写,文件操作采用字节方式
w+b:可读可写,文件存在则先清空再写,文件不存在就先创建再写,文件操作采用字节方式
a+b:可读可写,文件存在则在文件内容末尾追加写,文件不存在就先创建再写,文件操作采用字节方式
文件操作编码问题
1、在t模式下:文件保存采用什么编码,打开就用什么编码打开,不然会出现乱码,如果不写编码,就会用系统默认编码
所以t模式下一定要指定编码--什么编码写,什么编码打开
2、在b模式下:硬盘文件保存的是二进制的字符串形式,写入也是提前编写好的二进制文件,电脑可以识别编码
所以b模式下不需要去指定编码
文件的复制
with open('a.txt','r',encoding='utf-8') as rf: #通过采用字符操作复制
with open('b.txt','w',encoding='utf-8') as wf:
for line in rf
wf.write(line) #可以把a文件一行一行的读出来并复制到b文件里
with open('a.txt','rb') as rf: #通过采用字节操作复制
with open('b.txt','wb') as wf:
for line in rf
wf.write(line)
游标操作
只有在r模式下才可以进行游标操作(游标操作的是字节)
with open('a.txt','rb') as rb:
date = rb.read(10)
f.seek(2,0) #seek(offset,whence) offset 前面的是游标移动的字节数,正数表示向后移动,负号表示向前移动。
逗号后面的数字在b模式下可以为0、1、2
whence 0:游标置到开头 1:游标置到当前位指 2:游标置到末尾
# 你是日本人
with open('target.txt', 'rb') as f:
# 先读6个字节
data = f.read(6)
print(data.decode('utf-8')) # 你是
# 将游标从头开始往后偏移3个字节
f.seek(3, 0)
data = f.read(6)
print(data.decode('utf-8')) # 是日
# 从当前游标位置往前偏移3个字节
f.seek(-3, 1)
data = f.read(3)
print(data.decode('utf-8')) # 日
f.seek(-3, 2)
data = f.read(3)
print(data.decode('utf-8')) # 人
转载于:https://www.cnblogs.com/hesujian/p/10753187.html
python day08相关推荐
- 人生苦短,我学python day08 字符串
一.字符串和字符 1.定义(str) 容器:将引号做为标志.''."".''''''."""""",里面的每个独立的文字 ...
- python day08
一 文件处理补充 控制文件中光标移动 1 f.read(n): l.文件打开方式为文本模式的时,代表读取N个字符 ll.文件打开方式为b模式时,读取N个字节 强调:只有在read(n)模式下 N代表字 ...
- python实例(一):验证输入的手机号码是否为中国移动手机号码
#python day08 实战演练 实例 验证输入的手机号码是否为中国移动手机号码 import re pattern = r'(13[4-9]\d{8})|(15[01289]\d{8})$' d ...
- Python基础day08 作业解析【7道 面向对象题目】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day08[面向对象(类.对象.属性).魔方方法(init.str.del.rep ...
- Python菜鸟入门:day08函数概念
写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...
- day08 操作索引脏读、幻读、不可重复读 python复习
day08 操作索引脏读.幻读.不可重复读 python复习 昨日内容复习 视图 把sql语句查询结果保存下来,结果就叫视图视图的数据来自于原始表,在硬盘中只有表结构 create view 视图名称 ...
- 轩小陌的Python笔记-day08 模块一总结
day08 阶段总结和考试题 课程目标:对第一模块 "Python基础" 阶段的知识点进行总结,更好地掌握此模块的相关知识. 课程概要: 代码规范 知识补充 阶段总结(思维导图) ...
- Python学习Day08
Python学习Day08 字符串 II 判断和检测 startswith(prefix[,start[,end]]):用于判断参数所指定的字符串是否出现在字符串的起始位置 endswith(pref ...
- Python基础day08【面向对象(类、对象、属性)、魔方方法(init、str、del、repr)】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] 目录 0.复习 1.类外部添加和获取对象属性 2.类内部操作属性 3.魔法方法 3.1.__i ...
最新文章
- pb分组数据累计_A轮公司数据分析面试经验
- 2017年实时更新系统hosts文件(不能访问时才会更新)不要用于非法行为 只供内部测试...
- vue slot scope使用_20、slot插槽的用法
- bzoj 4009 接水果 整体二分
- 网络编程常用接口的内核实现----sys_listen()
- docker artifactory-jcr
- @PathVariable、@RequestParam、@RequestBody注解
- 【Python】Matplotlib绘制七彩锥面
- 设计模式:工厂方法模式(C++)【简单工厂进行升级】
- 技术转管理?这些“坑”你要绕道走
- 语言阿克曼函数_函数式的动态规划
- CAN 通信协议文档集锦
- ActiveMQ 下载和安装
- 前端性能优化原理与实践
- 深入理解TTL 与 CMOS 电路
- imatest白平衡测试结果解析
- 网络学习:路由器 如何实现不同网络互连(ip协议) 和 和内网访问外网( nat转化协议)
- cesium实现运动模型的相机上帝视角跟随
- E01-前端整合:【案例】添加数据页面
- Error response from daemon: You cannot remove a running container 8c03b6c4da31d435bcaf8c4a6c59938c3b
热门文章
- Googlequot;员工quot;曝内幕:Google员工的17个秘密
- MATLAB和Python读取wave文件的波形对比
- 为小区物业开发一个停车位租赁系统
- 在jupyter中使用matlab
- 关于分布式系统的数据一致性问题(一)
- numpy库:常用基本
- Dockerfile 常用指令 - 每天5分钟玩转 Docker 容器技术(16)
- HDU 1022[Train Problem I] 栈的应用
- ACdream 1224 Robbers (贪心)
- 20145202马超 《Java程序设计》第六周学习总结