今日内容
深浅拷贝
文件操作
内容回顾及补充
1.内容回顾
计算机基础
编码
语法
if/while/for
数据类型
type/id/range
运算符
2.面试题
a.公司线上的系统用的是什么?
b.py2与py3的区别
c.运算符
d.is与==d的区别
5.列举python的数据类型中都有哪些方法?
今日内容
1.深浅拷贝
浅拷贝copy.copy():只拷贝第一层。
深拷贝copy.deepcopy():拷贝嵌套层次中的所有可变类型。
a.针对int+str+bool,都数据不可变的数据类型,理论是都是开辟一个新的存储空间,但由于小数据池的原因,深浅拷贝都使用同一个内存地址,请注意;
b.针对list+set+dic
深拷贝只有在嵌套中存有可变类型的情况下发挥作用。
浅拷贝:只复制第一层,元素的值指向源地址。
深拷贝:完全拷贝。
c.特殊情况
对于元组是不可变数据类型,深浅拷贝都不会重新开辟新的内存地址,但是如果里面存在由可变元素,就是重新开辟新的内存地址。
2.文件操作
a.打开
r:只能读
w:只能写,再写之前会先清空文件,如果文件不存在,会直接创建,如果存在就清空
a:只能追加,即只能写,如果文件不存在,也会创建
注意:r模式下:如果文件不存在就报错;w默认下:如果文件不存就创建,存在就先清空;a模式下,如果文件不存在就创建,不能读取文件内容;
r+:可读可写
读:默认从0的光标位置开始读,也可以通过seek调整光标的位置(seek是按字节计算的);
写:从光标所在的位置开始写,也可以通过seek调整光标的位置(注意:当光标后边还有内容,写会覆盖光标后边的内容)
w+:先写后读
读:默认光标永远在写的后边或是0(还没有开始写东西),也可以通过seek调整光标的位置;
写:先清空文件,然后开始写内容
a+:可追加可读
读:默认光标永远在文件内容的最后边,也可以通过seek调整光标的位置,然后再去读取;
写:永远写在最后边,不管光标怎么移动
b.操作
读:read()/read(2)【里面的数据表示的是字符】/readlines()
写:write
# ###################################### 读操作
# file_object = open(‘log.txt‘,mode=‘r‘,encoding=‘utf-8‘)
# 读取文件的所有内容到内存
# data = file_object.read()
# 从当前光标所在的位置向后读取文件两个字符
# data = file_object.read(2)
# 读取文件的所有内容到内存,并按照每一行进行分割到列表中。
# data_list = file_object.readlines()
# print(data_list)
# 如果以后读取一个特别大的文件 (**********)
# for line in file_object:
# line = line.strip()
# print(line)
# file_object.close()
c.关闭 close
原文:https://www.cnblogs.com/limin1027/p/12151892.html