Python基础知识点分享:OS模块的应用
1.os模塊
對(duì)于文件和目錄進(jìn)行處理
目錄:就是文件夾
屬性:
os.name:查看當(dāng)前系統(tǒng)的類型;
如果是windows —> nt
如果是max —> posix
os.environ:返回當(dāng)前系統(tǒng)的環(huán)境變量(所有)
函數(shù):
os.environ.get():獲取指定的某一個(gè)環(huán)境變量
路徑分類:
路徑:帶盤符根目錄的就是路徑
相對(duì)路徑:相對(duì)于某個(gè)文件(參照物)所得到的一個(gè)路徑值; 特點(diǎn):書寫的時(shí)候不帶盤符的
os.getcwd():返回當(dāng)前正在執(zhí)行的.py文件所對(duì)應(yīng)的完整路徑(路徑)
os.listdir(path):將path路徑下的所有文件和目錄顯示
os.mkdir(path):創(chuàng)建單層文件夾,此方法只能創(chuàng)建目錄,如果目錄已經(jīng)存在,創(chuàng)建失敗,報(bào)錯(cuò)
os.makedirs(path):創(chuàng)建多層文件夾(級(jí)聯(lián)新建),此方法也只能創(chuàng)建目錄,如果目錄已經(jīng)存在,創(chuàng)建失敗,報(bào)錯(cuò)
os.rmdir(path):刪除單層文件夾,此方法只能刪除目錄,如果目錄不存在,刪除失敗,報(bào)錯(cuò):FileNotFoundError
os.removedirs(path):刪除多層文件夾(級(jí)聯(lián)刪除),此方法也只能刪除目錄,如果目錄不存在,創(chuàng)建失敗,報(bào)錯(cuò)
os.remove(path):刪除文件,如果文件不存在,報(bào)錯(cuò)!【注意】這個(gè)方法只能刪除文件不能刪除目錄
os.rename(old, new):可以給文件或者目錄重命名
os.system():執(zhí)行系統(tǒng)指令:cls、ipconfig、dir。。。
os.path.join(path, fileName):將path和fileName中的數(shù)據(jù)拼接稱為一個(gè)新的路徑,以字符串的形式返回
os.path.isdir(path):判斷path對(duì)應(yīng)的路徑內(nèi)容是否為一個(gè)目錄,如果是,返回True;反之,返回False
os.path.isfile(path):判斷path對(duì)應(yīng)的路徑內(nèi)容是否為一個(gè)文件,如果是,返回True;反之,返回False
os.path.exists(path):判斷path對(duì)應(yīng)的路徑內(nèi)容是否存在,如果存在,返回True;反之,返回False
os.path.getsize(path):對(duì)path對(duì)應(yīng)的路徑內(nèi)容進(jìn)行容量檢測(cè),并且返回字節(jié)量
os.path.basename(path):傳入一個(gè)路徑值,將此路徑的后一個(gè)/后面的部分返回
os.path.dirname(path):傳入一個(gè)路徑值,將此路徑的后一個(gè)/前面的部分返回
os.path.split(path):傳入一個(gè)路徑值,將此路徑的后一個(gè)/的前面部分放入到元祖的個(gè)元素中,
/后面的部分放入到元祖的第二個(gè)元素中
os.path.splitext(path):傳入一個(gè)路徑值,將此路徑的后一個(gè).的前面部分放入到元祖的個(gè)元素中,
以及后面的部分放入元祖的第二個(gè)元素中
1.字符集(字符編碼):
ascii碼:
美國的標(biāo)準(zhǔn)碼,范圍:自己去找找看
unicode碼:
萬國碼,它可以包含中文,但是很可惜,它不被通用(流行)
utf-8碼:
計(jì)算機(jī)中使用為流行,它包含了之前unicode中的內(nèi)容并且擴(kuò)展了,
它同樣可以保存中文
utf-8碼保存中文字符,一個(gè)漢字占用3個(gè)字節(jié),
gbk碼:
我們國內(nèi)的碼表,它同樣繼承了gb2312,主要用于一些中文的系統(tǒng)
gbk保存中文字符,1個(gè)漢字占用內(nèi)存2個(gè)字節(jié),
2.字節(jié)和字符
記住:計(jì)算機(jī)中一切皆字節(jié)(存儲(chǔ)方面)
字符:我們使用文本編輯器打開,能夠看得懂的(不會(huì)亂碼),就是字符文件
字節(jié):我們使用文本編輯器打開,不能夠看懂的,就是字節(jié)文件
思考:.doc結(jié)尾的文件是字符文件嗎?
不是;
3.文件讀取
有規(guī)定的步驟:
1).打開文件
2).操作數(shù)據(jù)(讀、寫)
3).關(guān)閉文件 **
打開文件:
fp= open(path, 打開方式, encoding=,errors=‘Ignore’)
操作數(shù)據(jù):
打開方式:
‘r’:表示只讀字符(readonly)
#‘r+’:在只讀的功能下,在追加一個(gè)寫的功能
‘w’:表示只寫字符(readwrite),次寫完,如果沒有關(guān)閉文件,繼續(xù)寫,那么會(huì)將原本的內(nèi)容覆蓋
#‘w+’:在只寫的功能下,在追加一個(gè)讀的功能
‘a(chǎn)’:表示追加內(nèi)容
#‘a(chǎn)+’:在保留追加內(nèi)容的同時(shí),新增了一個(gè)讀的功能
‘rb’:表示只讀字節(jié)(二進(jìn)制數(shù)據(jù))
‘wb’:表示只寫字節(jié)(二進(jìn)制數(shù)據(jù))
encoding:
編碼集如果不顯示定義,對(duì)應(yīng)的就是:gbk
我們也可以根據(jù)自己的需要,定義譬如:utf-8
errors:
如果不寫,默認(rèn)是報(bào)錯(cuò)(編解碼不一致)
我們也可以定義為ignore,這樣就不會(huì)報(bào)錯(cuò)了,但是會(huì)出現(xiàn)亂碼
編碼&解碼:
編碼:程序 —> 文件
解碼:文件 —> 程序
記住:如果編碼和解碼不一致,一定會(huì)亂碼(中文情況下)
讀取文件中的數(shù)據(jù):
fp= open(path, ‘r’)
content= fp.read() #讀取全部?jī)?nèi)容
content= fp.read(num) #讀取num個(gè)字節(jié)數(shù)
content= fp.readline() #讀取一行數(shù)據(jù)
content= fp.readlines() #讀取所有行,以一個(gè)列表的形式返回
print(content) #打印讀取到的內(nèi)容
【注意】讀文件,如果文件不存在,直接報(bào)錯(cuò):FileNotFoundError
寫入數(shù)據(jù)到文件中:
fw= open(path, ‘w’)
fw.write(str1) #將變量str1中的內(nèi)容寫入到path對(duì)應(yīng)的文件中(覆蓋)
【注意】寫文件,如果文件不存在,先創(chuàng)建文件,再寫入內(nèi)容;如果存在了,將以前的內(nèi)容覆蓋
fw = open(path, ‘a(chǎn)’)
fw.write(str1) #將變量str1中的內(nèi)容寫入到path對(duì)應(yīng)的文件中(追加)
關(guān)閉文件:
fp.close() #關(guān)閉文件(釋放資源)
以上就是小千關(guān)于OS模塊的應(yīng)用,希望能幫到大家!想了解更多Python知識(shí),想掌握好Python技能,可以關(guān)注小千,后期會(huì)繼續(xù)分享Python技術(shù)知識(shí),幫你成為一名優(yōu)秀的Python工程師!
本文來自千鋒教育,轉(zhuǎn)載請(qǐng)注明出處。
總結(jié)
以上是生活随笔為你收集整理的Python基础知识点分享:OS模块的应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML5培训分享:HTML5全栈工程师
- 下一篇: 学Java好还是学Python好?这里有