py深淺拷貝,文件操作
阿新 • • 發佈:2019-04-04
一段 去掉 生成 encoding 區別 編碼 覆蓋 拷貝文件 str
py深淺拷貝,文件操作
回顧&補充
- 獨有功能叫方法
- range是默認隨機生成一段數字
- range/type/id
一,深淺拷貝
淺拷貝只拷貝第一層,深拷貝拷貝嵌套層次中所有可變類型
深淺拷貝需要先引用模塊import copy
例子: v = [1,12,34,33,[33,44]] import copy vv = copy.deepcopy(v)
1.深拷貝
- copy.deepcopy
- 深拷貝裏面所有可變類型拷貝一遍
a = "sss" b = copy.deepcopy(a) 例子: v = [1,12,34,33,[33,44]] import copy vv = copy.deepcopy(v) print(id(vv[3]),id(v[3])) 輸出結果:1868596336 1868596336 print(id(vv[4]),id(v[4])) 輸出結果:1902741508552 1902741297416
2淺拷貝
- copy.copy
- 淺拷貝就是把列表裏面的空殼拷貝,裏面元素地址還是原來的
a = "ss"
b = copy.copy(a)
例子:
v = [1,12,34,33,[33,44]]
import copy
vv = copy.copy(v)
print(id(vv[3]),id(v[3]))
輸出結果:1868596336 1868596336
print(id(vv[4]),id(v[4]))
輸出結果2663470471432 2663470471432
!深拷貝淺拷貝一般情況下沒有區別,只有在嵌套時才有區別
不可變類型拷貝,不會拷貝,地址一樣
特殊情況:如果元組裏面都是不可變的,不會改變原來的地址,如果裏面有可變,深拷貝會把元組拷貝一遍
實例: ##拷貝可變類型,能夠拷貝,在內存開辟一個空間,地址不一樣 v = [1,12,34,33,[33,44]] import copy vv = copy.deepcopy(v) print(id(vv),id(v)) 輸出結果:1664607524872 1664605100808 ##不可變類型拷貝,不會拷貝,地址一樣 v = (1,12,34,33,[33,44]) import copy vv = copy.copy(v) print(id(vv),id(v)) 輸出結果:2831372300448 2831372300448 v = (1,12,34,33,[33,44]) import copy vv = copy.deepcopy(v) print(id(vv[4]),id(v[4])) 輸出結果:2754557676624 2754555654304 ##特殊情況:如果元組裏面都是不可變的,不會改變原來的地址,如果裏面有可變,深拷貝會把元組拷貝一遍
二,文件操作
1.寫入
r是只讀,w是只寫(先清空文件),a是只寫(只添加不能讀)
file_object.seek()指定光標位置
可讀可寫
r+ (**)常用程度
讀:,默認光標位置0,讀時默認從最開始讀
寫:根據光標的位置從當前光標位置開始進行操作,會覆蓋當前光標後面的值
w+ (**)常用程度
讀:默認光標最後或0,讀取時需要調整光標位置
寫:先清空
a+ (*)常用程度
讀:默認光標位置在最後,讀需要調整光標位置
寫:寫入時不論怎麽調整光標位置,永遠寫到最後
讀取文件
例子: file.object = open (”文件“,mode="r",encoding="編碼") 讀取文件: 變量 = file.object print(變量) 關閉文件 file_object.close ## r 不能新建,文件不存在報錯
寫入文件
例子: file_object = open (”文件“,mode="w",encoding="編碼") 寫入文件: file_object.write("寫入內容") 關閉文件 file_object.close ## w 權限一般用於新建,文件不存在新建 例子: file_object = open (”文件“,mode="a",encoding="編碼") 寫入文件: file_object.write("寫入內容") 關閉文件 file_object.close ## a 只添加不能讀,不存在就新建
2.操作
.read把文件所有內容讀取到內存
.read(2)當前光標向後讀取兩個字符
.readliens把所有文件到內存,並按照行到列表
讀取大文件:用循環循環讀取,.strip能夠去掉換行(***********)
寫文件操作:file_object.write("你好,小黑"/n)
file_object.write("你好,小白)
py深淺拷貝,文件操作