「Python」2020.04.12學(xué)習(xí)筆記 | 第六章文件目錄之序列化+目錄getcwd()、chdir(path)、cur(dir)、pardir()+十級(jí)深層目錄小練習(xí)

  • 學(xué)習(xí)測(cè)試開(kāi)發(fā)的Day101,真棒!
  • 學(xué)習(xí)時(shí)間為1H40M
  • 第九次全天課(下午視頻二2H40M-3H27M_END)
image.png

如果有問(wèn)題的話,保存的時(shí)候選擇此模式,并把前面多余的幾個(gè)字節(jié)去掉即可!

序列化

image.png

程序中我們經(jīng)常用到變量,但是當(dāng)程序一關(guān),這個(gè)變量就沒(méi)有了,我們想把這個(gè)變量的狀態(tài)記下來(lái),變量除了有值還會(huì)有類型,如果下次我們還是想用這個(gè)變量怎么辦?只能手寫(xiě),但是如果我們想保存上一次變量的值就沒(méi)有辦法了,因?yàn)椴恢缹?xiě)了多少,所以要把上一個(gè)變量本身的值都保存下來(lái),這就叫做序列化。

把你的變量保存到文件中,下一次取出來(lái)直接用,這個(gè)稱之為序列化,就是把變量、值和類型,保存在文件里面的過(guò)程稱之為序列化

而從文件中把變量的值都取出來(lái),再存到變量中,這個(gè)叫做反序列化

假設(shè)我是客戶端,你是服務(wù)器端,我給你發(fā)了一個(gè)序列化的變量,在你那反序列化之后我的變量你就可以用了,這就是遠(yuǎn)程通訊的時(shí)候可以使用的一種方式,這就是序列化的價(jià)值,可以在不同機(jī)器上,或者把你的變量保存起來(lái),而且把變量保存在文件中

代碼:

# -*- coding:utf-8 -*- #
import pickle as p
shoplistfile='D:\\0grory\\day9\\shoplist.data'
shoplist=['apple','mango','carrot']
f=open(shoplistfile,'wb')
p.dump(shoplist,f)
f.close()
del shoplist
f=open(shoplistfile,'rb')
storedlist=p.load(f)
print('從文件讀取的列表對(duì)象:',storedlist)

輸出:

PS D:\0grory\day9> python .\seria.py
從文件讀取的列表對(duì)象: ['apple', 'mango', 'carrot']
PS D:\0grory\day9>

序列化可以同時(shí)存多個(gè)變量

先被寫(xiě)入的變量先被讀取

多個(gè)變量的序列化

image.png

代碼:

# -*- coding:utf-8 -*- #
import pickle as p
shoplistfile='D:\\0grory\\day9\\shoplist.data'
shoplist1=['apple','mango','carrot']
shoplist2=['apple1','mango1','carrot1']
f=open(shoplistfile,'wb')
p.dump(shoplist1,f)
p.dump(shoplist2,f)
f.close()
del shoplist1
del shoplist2
f=open(shoplistfile,'rb')
storedlist=p.load(f)
storedlist2=p.load(f)
print('從文件讀取的列表對(duì)象:',storedlist)
print('從文件讀取的列表對(duì)象:',storedlist2)

輸出:

PS D:\0grory\day9> python .\seria.py
從文件讀取的列表對(duì)象: ['apple', 'mango', 'carrot']
從文件讀取的列表對(duì)象: ['apple1', 'mango1', 'carrot1']
PS D:\0grory\day9>

不想用數(shù)據(jù)庫(kù)存,又不想把數(shù)據(jù)全部用文本的形式存到數(shù)據(jù)庫(kù)里,這時(shí)候就可以用序列化的形式來(lái)存了

可以把知識(shí)都做成相應(yīng)的作品

目錄操作

Python os 模塊提供了一個(gè)統(tǒng)一的操作系統(tǒng)接口函數(shù), 這些接口函數(shù)通常是平
臺(tái)指定的,os 模塊能在不同操作系統(tǒng)平臺(tái)(如 nt 或 posix)中的特定函數(shù)間
自動(dòng)切換,從而能實(shí)現(xiàn)跨平臺(tái)操作。

python中對(duì)文件、文件夾(文件操作函數(shù))的操作需要涉及到os模塊和shutil
模塊。

引入該模塊,import os, shutil

getcwd()、chdir(path)

image.png

獲取當(dāng)前在哪個(gè)目錄下

>>> import os
>>> os.getcwd()
'D:\\0grory\\day9'
>>>

更改目錄

>>> os.chdir("D:\\0grory\\day9")
>>> os.getcwd()
'D:\\0grory\\day9'
>>>

改為到上一級(jí)目錄

法1:

>>> os.chdir("..")
>>> os.getcwd()
'D:\\0grory'
>>>

法2:

>>> os.chdir(os.pardir)
>>> os.getcwd()
'D:\\0grory'
>>>

目錄操作很重要,自動(dòng)化部署都會(huì)遇到

curdir、pardir

image.png
>>> os.name
'nt'
>>> os.mkdir("D:\\0grory\\day9\\test")#只能建一級(jí)目錄
>>> os.makedirs("D:\\0grory\\day9\\test\\1\\2\\3")# 建多級(jí)目錄
>>>

小練習(xí):建一個(gè)10級(jí)深度目錄,目錄名隨意,每個(gè)目錄下面一個(gè)文件和目錄名一致,文件內(nèi)容是文件名+“Hello”

自己的代碼

import os 
str1="D:\\0grory\\day9"
str2=""
for i in range(0,10):
    str2+="\\"+str(i)
    os.makedirs(str1+str2)
    fp=open(str1+str2+"\\"+str(i)+".txt",'w+')
    fp.write(str(i)+".txt"+"Hello")

執(zhí)行:

PS D:\0grory\day9> python .\tenml.py
PS D:\0grory\day9>

結(jié)果


image.png

老師的:

import os
os.chdir("D:\\0grory\\day9\\test")
for i in range(1,11):
    os.mkdir("gloryroad"+str(i))    
    os.chdir("gloryroad"+str(i))#改變當(dāng)前腳本工作目錄;相當(dāng)于shell下的cd命令。
    fp=open("gloryroad"+str(i)+".txt","w")
    fp.write("gloryroad"+str(i)+".txt"+"光榮之路")
    fp.close()

執(zhí)行:

PS D:\0grory\day9> python .\t10ml.py

結(jié)果:


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 如果我們要操作文件、目錄,可以在命令行下面輸入操作系統(tǒng)提供的各種命令來(lái)完成。比如dir、cp等命令。 如果要在Py...
    全宇宙最帥De男人閱讀 592評(píng)論 0 0
  • pyton review 學(xué)習(xí)指南 https://www.zhihu.com/question/29138020...
    孫小二wuk閱讀 1,192評(píng)論 0 2
  • 一、IO編程 讀寫(xiě)文件是最常見(jiàn)的IO操作,Python內(nèi)置了讀寫(xiě)文件的函數(shù)。文件讀寫(xiě)的原理:在磁盤(pán)上讀寫(xiě)文件的功能...
    _花閱讀 568評(píng)論 0 1
  • Time 模塊 時(shí)間模塊常用的有如下幾種。 元組形式顯示時(shí)間: UTC時(shí)間: 將格式化的時(shí)間轉(zhuǎn)換為元組形式的時(shí)間:...
    斷尾壁虎V閱讀 515評(píng)論 0 1
  • 暑假期間,我經(jīng)常帶日子出去吃飯。無(wú)論到哪家餐廳,我總是會(huì)點(diǎn)上有關(guān)香椿的菜。兒子就說(shuō),老爸,就算你要我憶苦思甜,也不...
    微言微評(píng)閱讀 456評(píng)論 0 0

友情鏈接更多精彩內(nèi)容