python第九天
文件处理
1. 操作文件的三步骤:
---打开文件:硬盘的空间被操作系统持有 | 文件对象被应用程序持有
---操作文件:读写操作
---释放文件:释放操作系统对硬盘空间的持有
2. 基础的读写
with open ('1.txt' , 'r' , encoding = ' utf-8' ) as rf, open (' 2.txt ' , ' w ' , encoding = ‘ utf-8 ' ) as wf:
rf . read () # 一次性读完
rf .read (10) # 读取10个字符
rf .readline () # 一次读一行
rf .readlines () # 将所有行读出,存放为一个list
wf .write ('写入的内容')
wf .flush () # 主动将内存的数据刷新到硬盘
wf writelines (输入的内容必须使用list() 包裹,手动输入换行。例:['123\n', '456\n'])
3. 边读边写:重点!!!!
# with open('abc.txt','r',encoding='utf-8') as rf: # 首先以只读模式打开起始文件
# with open('def.txt','w',encoding='utf-8') as wf: # 然后用'w'模式,创建一个新的文件
# for line in rf : # 遍历起始文件
# wf.write(line) # 然后使用新文件来接受遍历起始文件的数据 这样就复制了起始文件的内容到了新文件
4. 模式:
主模式:r | w | a | x
r : 文件必须存在的可读模式,游标默认在开头,游标可以移动
w : 文件如果存在,则清空文件,重新写入,文件不存在则创建文件来写入。虽然游标可以移动,但是该模式一定会把文件内容清空。
a : 文件如果存在则追加写入,如果不存在,则创建来写入,游标永远从文件的末尾开始操作
x : 文件没有则创建写入,如果存在,则会报错
从模式: t | b | +
t : 默认模式,以字符形式来操作
b : 以字节模式来操作文件
+ :与 r 和 w 模式一起使用,变为可读可写模式
5 . seek( offset , type )
--- offset : 偏移的字节数
--- type: 0 -- 游标从头开始 1 -- 游标从当前开始 2 -- 游标从末尾开始
--- 游标操作必须在 rb 模式下
内存管理
引用计数:垃圾回收机制的依据
# 1.变量的值被引用,该值的引用计数 +1
# 2.变量的值被解绑,该值的引用计数 -1
# 3.引用计数为0时就会被垃圾回收机制回收
引用计数会出现循环引用问题:相互引用无法释放
# 1.两个变量引用其值,值之间又相互引用
# 2.变量与值进行解绑,但是值之间还存在相互引用,导致值得引用计数永远 >0
# 3.引用计数>0的值永远无法被引用计数机制回收,导致内存泄露
标记清除:解决循环引用问题
# 所有线程能访问到的栈区变量,称之为 gc roots对象
# 1.所有gc roots对象可以直接或间接访问到的变量值,都会被 标记机制 标记为存活状态
# 2.将所有存活状态的值形成新的拷贝,变量完成重新引用
# 3.清除机制 会将之前所有产生的值都进行回收
分代回收:采用的还是引用计数来回收,是对该机制的一个优化措施
# 1.刚产生的变量值放在新生代中高频率检查,如果引用计数为0,就是采用引用计数机制回收,长期存活的变量值经过多次检查后会提高分代
# 2.分带又高,检查频率越低,且还能继续提高一直存活的变量值的分带,从而来提高整体垃圾回收的效率
python第九天的更多相关文章
- 孤荷凌寒自学python第九天Python的输出print的格式化
孤荷凌寒自学python第九天Python的输出print的格式化 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) (今天感觉手写笔记整得清楚些,汇总电子 笔记时,自己思路凌乱了,练习过程也还 ...
- python第九天(9-33)
一:进程 进程概念 进程就是一个程序运行在一个数据集上的一次动态执行过程 进程一般由程序,数据集,进程控制块组成 进程控制块: 进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用它 ...
- python第九天(9-34)
一:队列的三种模式 先进先出(FIFO) class queue.Queue(maxsize) 后进先出(LIFO) class queue.LifoQueue(maxsize) 优先级顺序(优先级低 ...
- 孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9并使用pydocx模块将结果写入word文档
孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 到今天终于完成了对docx模块针对 ...
- 孤荷凌寒自学python第六十九天学习并实践beautifulsoup对象用法2
孤荷凌寒自学python第六十九天学习并实践beautifulsoup对象用法2 (完整学习过程屏幕记录视频地址在文末) 今天继续学习beautifulsoup对象的属性与方法等内容. 一.今天进一步 ...
- 孤荷凌寒自学python第五十九天尝试使用python来读访问远端MongoDb数据服务
孤荷凌寒自学python第五十九天尝试使用python来读访问远端MongoDb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第五天.今天的感觉是,mongoDB数 ...
- 孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数
孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 不同类型 ...
- 孤荷凌寒自学python第三十九天python 的线程锁Lock
孤荷凌寒自学python第三十九天python的线程锁Lock (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 当多个线程同时操作一个文件等需要同时操作某一对象的情况发生时,很有可能发生冲突, ...
- 孤荷凌寒自学python第二十九天python的datetime.time模块
孤荷凌寒自学python第二十九天python的datetime.time模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) datetime.time模块是专门用来表示纯时间部分的类. ...
随机推荐
- 持续集成之 Spring Boot 实战篇
本文作者: CODING 用户 - 何健 这次实战篇,我们借助「CODING 持续集成」,实现一个简单的 Spring Boot 项目从编码到最后部署的完整过程.本教程还有 B 站视频版,帮助读者更好 ...
- 自定义编译gdal库
作者:朱金灿 来源:http://blog.csdn.net/clever101 使用下载下来的gdal库的makefile来编译gdal库,生成的gdal库的名字debug版本和release版本都 ...
- Webpack 4教程:为什么要优化代码
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者.原文出处:https://wanago.io/2018/07/30/webpack-4-course-part ...
- springboot集成elasticsearch
在基础阶段学习ES一般是首先是 安装ES后借助 Kibana 来进行CURD 了解ES的使用: 在进阶阶段可以需要学习ES的底层原理,如何通过Version来实现乐观锁保证ES不出问题等核心原理: 第 ...
- python在sqlite动态创建表源码
代码之余,将开发过程中经常用的代码片段备份一下,如下的代码是关于python在sqlite动态创建表的代码,应该能对各位有所用. import sqlite3 as db conn = db.conn ...
- Spark MLlib KMeans 聚类算法
一.简介 KMeans 算法的基本思想是初始随机给定K个簇中心,按照最邻近原则把分类样本点分到各个簇.然后按平均法重新计算各个簇的质心,从而确定新的簇心.一直迭代,直到簇心的移动距离小于某个给定的值. ...
- [20190419]shared latch spin count.txt
[20190419]shared latch spin count.txt --//昨天测试exclusive latch spin count = 20000(缺省).--//今天测试shared ...
- SqlServer如何给表添加新的字段以及字段注释
语法: USE 数据库名ALTER TABLE 表名 ADD 字段名 类型 默认值 是否为空;EXEC sp_addextendedproperty N'MS_Description', N'注 ...
- 使用Let's Encrypt生成免费SSL证书操作记录
最近要做微信小程序,要求接口必须备案且是https,个人小站就直接准备使用免费的SSL证书,网上搜了一圈,发现Let's Encrypt是浏览器支持比较好的. 流程: 1. 首先去服务器上安装了Let ...
- WPF软件开发系统之二——水环境检测Surface触摸屏软件开发
该系统采用C#.WPF语言开发,开发工具Visual Studio 2015.Blend,环境WIN7系统及以上,适用于PC.Windows触摸屏Surface等设备. 部分截图效果如下: 开发工具环 ...