No.7深浅拷贝&文件操作
No.7
今日概要
- 深浅拷贝(面试)
- 文件操作
内容回顾和补充
-
内容回顾
- 计算机基础
- 编码
- 语法
- if
- while
- for
- 数据类型
- range / type / id
- 运算符
-
面试题
-
公司线上系统用的什么? centos
-
py2和py3的区别?
- 默认解释器编码
- 输入/输出
- 整数除法 / int long
-
运算符
v = 1 or 0 and 8 or 9 print(v) -
is 和 == 的区别?
-
列举python的数据类型中有哪些方法?
-
内容详细
1.深浅拷贝
-
浅拷贝
#按理应该拷贝一份存入新地址,但由于小数据池的原因依旧指向原地址。 v1 = 'alex' import copy v2 = copy.copy(v1) print(id(v1),id(v2)) v3 = copy.deepcopy(v1) print(id(v1),id(v3)) -
深拷贝
#浅拷贝只拷贝第一层可变类型,深拷贝拷贝所有可变类型。 v1 = [1,2,3,[11,22,33]] import copy v2 = copy.copy(v1) print(id(v1),id(v2)) #id不一样 print(id(v1[3]),id(v2[3])) #id一样 v3 = copy.deepcopy(v1) print(id(v1),id(v3)) #id不一样 print(id(v1[3]),id(v3[3])) #id不一样 print(id(v1[0]),id(v2[0]),id(v3[0])) #v1/v2/v3里面的第1个元素id都一样,是因为小数据池的原因造成的,我们可以理解成浅拷贝只拷贝第一层可变类型,深拷贝拷贝所有可变类型。
2.文件操作
-
打开
#打开文件 f = open('文件路径', mode=;'r/w/a', encoding='原文件写入时定义的编码') #操作 data = f.read() #读取文件的内容到内存(全部) f.write('要写入的内容') #关闭 f.close()- r 只能读。▲▲
- w 只能写,写之前清空。▲
- a 只能追加。▲
- r+
- 读:默认从0的光标开始读,也可以通过seek调整光标位置。
- 写:从光标所在位置开始写,也可以通过seek调整光标位置。
- w+
- 读:光标永远在写入的最后或者0,也可以通过seek调整光标位置。
- 写:永远会先清空。
- a+
- 读:默认光标在最后,也可以通过seek调整光标位置后再读取。
- 写:永远写到最后。
-
操作
- 读
-
read()
-
read(2) 参数是字符/字节
-
readlines()
with open('文件操作练习.txt', mode = 'r',encoding = 'utf-8') as f: data = f.readlines() print(data) #列表的形式返回,列表中每个元素是文件一行的内容,以字符串形式呈现。 ['1|alex|123123\n', '2|eric|rewrew\n', '3|wupeiqi|ppp']
-
- write
- seek 参数永远是字节
- 读
-
关闭
总结
- 深浅拷贝
- 文件操作
- 打开
- 读写
- 关闭
- 文件操作和数据类型的结合使用。

浙公网安备 33010602011771号