資訊內(nèi)容
Python詳解os模塊和shutil模塊
5es少兒編程網(wǎng)-https://www.pxcodes.com文章目錄5es少兒編程網(wǎng)-https://www.pxcodes.com
文件的處理獲取系統(tǒng)類(lèi)型獲取系統(tǒng)環(huán)境執(zhí)行系統(tǒng)命令操作目錄與文件文件和目錄高級(jí)處理復(fù)制文件移動(dòng)文件讀取壓縮及歸檔壓縮文件解壓文件小結(jié)(相關(guān)免費(fèi)學(xué)習(xí)推薦:python視頻教程)5es少兒編程網(wǎng)-https://www.pxcodes.com
os模塊和shutil模塊是Python處理文件/目錄的主要方式。os模塊提供了一種使用操作系統(tǒng)相關(guān)功能的便捷方式,shutil模塊是一種高級(jí)的文件/目錄操作工具。5es少兒編程網(wǎng)-https://www.pxcodes.com
文件的處理5es少兒編程網(wǎng)-https://www.pxcodes.com
os模塊提供了一些便捷功能來(lái)使用操作系統(tǒng)資源,比如讀取資源目錄下的文件、在命令行查看某路徑下文件的所有內(nèi)容等。5es少兒編程網(wǎng)-https://www.pxcodes.com
獲取系統(tǒng)類(lèi)型5es少兒編程網(wǎng)-https://www.pxcodes.com
對(duì)代碼進(jìn)行兼容性開(kāi)發(fā)以適應(yīng)不同操作系統(tǒng)時(shí)通過(guò)操作系統(tǒng)類(lèi)型進(jìn)行判斷就可以輕松解決。5es少兒編程網(wǎng)-https://www.pxcodes.com
import osimport sysprint(os.name) # 返回nt代表Windows,posix代表Linuxprint(sys.platform) # 更詳細(xì)信息
5es少兒編程網(wǎng)-https://www.pxcodes.com
獲取系統(tǒng)環(huán)境5es少兒編程網(wǎng)-https://www.pxcodes.com
對(duì)環(huán)境變量進(jìn)行相關(guān)設(shè)置時(shí),常常會(huì)調(diào)用模塊environ模塊。os.environ是以字典的形式返回系統(tǒng)環(huán)境變量,要獲取具體的屬性值,可以用索引,也可以用方法getenv():5es少兒編程網(wǎng)-https://www.pxcodes.com
import osprint(os.environ)print(os.environ['PATH'])print(os.getenv('PATH'))
5es少兒編程網(wǎng)-https://www.pxcodes.com
執(zhí)行系統(tǒng)命令5es少兒編程網(wǎng)-https://www.pxcodes.com
使用os模塊system()方法可以執(zhí)行shell命令,正常執(zhí)行會(huì)返回0。使用格式是os.system("bash command")。5es少兒編程網(wǎng)-https://www.pxcodes.com
在非控制臺(tái)編寫(xiě)時(shí),system()只會(huì)調(diào)用系統(tǒng)命令而不會(huì)執(zhí)行,執(zhí)行結(jié)果可通過(guò)popen()函數(shù)返回file對(duì)象進(jìn)行讀取獲得。5es少兒編程網(wǎng)-https://www.pxcodes.com
import os os.system('ping www.baidu.com')os.popen('ping www.baidu.com').read()
5es少兒編程網(wǎng)-https://www.pxcodes.com
操作目錄與文件5es少兒編程網(wǎng)-https://www.pxcodes.com
使用os模塊操作目錄和文件時(shí)Python開(kāi)發(fā)**為常見(jiàn)的功能之一。5es少兒編程網(wǎng)-https://www.pxcodes.com
方法說(shuō)明示例os.getcwd()獲取當(dāng)前目錄路徑
os.chdir('目標(biāo)路徑')更改當(dāng)前腳本目錄
os.listdir(path)列舉目錄下所有文件
os.mkdir(path)創(chuàng)建單個(gè)目錄
os.makedirs(path)創(chuàng)建多級(jí)目錄os.rmdir(path)刪除單級(jí)空目錄os.removedirs(path)刪除多級(jí)目錄os.rename("文件或目錄名",”目標(biāo)名“)重命名目錄或文件
os.path.abspath()獲取絕對(duì)路徑
os.path.split(path)將路徑分解為(文件夾,文件名)若路徑字符串**后一個(gè)字符是,則只有文件夾部分有值;
若路徑字符串中均無(wú),則只有文件名部分有值;
若路徑字符串有且不再**后,則文件夾文件名都有值。
os.path.join(path1,path2)將路徑組合os.path.dirname(path)獲取path中的文件夾部分
os.path.basename(path)獲取path中的文件名os.path.exists(path)判斷文件或文件夾是否存在
os.path.isfile(path)判斷路徑是否是一個(gè)文件
os.path.isdir(path)判斷路徑是否為一個(gè)目錄
os.path.getsize(path)獲取文件或文件夾大小
os.path.getctime(path)獲取文件或文件夾創(chuàng)建時(shí)間
os.path.getatime(path)獲取文件或文件夾**后訪問(wèn)時(shí)間
os.path.getmtime(path)獲取文件或文件夾**后修改時(shí)間
os.sep()路徑分割符
os.extsep()文件名和后綴之間的分割符os.pathsep()路徑分隔符os.linesep()換行符號(hào)(插播反爬信息 )博主CSDN地址:https://wzlodq.blog.csdn.net/5es少兒編程網(wǎng)-https://www.pxcodes.com
文件和目錄高級(jí)處理5es少兒編程網(wǎng)-https://www.pxcodes.com
相比os模塊,shutil模塊用于文件和目錄的高級(jí)處理,提供了支持文件賦值、移動(dòng)、刪除、壓縮和解壓等功能。5es少兒編程網(wǎng)-https://www.pxcodes.com
復(fù)制文件5es少兒編程網(wǎng)-https://www.pxcodes.com
shutil模塊的主要作用是賦值文件,大概有以下七種實(shí)現(xiàn):5es少兒編程網(wǎng)-https://www.pxcodes.com
shutil.copyfileobj(file1,file2)覆蓋復(fù)制
將file1的內(nèi)容覆蓋file2,file1、file2表示打開(kāi)的文件對(duì)象。5es少兒編程網(wǎng)-https://www.pxcodes.com
shutil.copyfile(file1,file2)覆蓋復(fù)制
也是覆蓋,但是無(wú)須打開(kāi)文件,直接用文件名進(jìn)行覆蓋(其源碼還是調(diào)用的copyfileobj)。5es少兒編程網(wǎng)-https://www.pxcodes.com
shutil.copymode(file1,file2)權(quán)限復(fù)制
僅復(fù)制文件權(quán)限,不更改文件內(nèi)容、組和用戶,無(wú)返回對(duì)象。5es少兒編程網(wǎng)-https://www.pxcodes.com
shutil.copystart(file1,file2)狀態(tài)復(fù)制
復(fù)制文件的所有狀態(tài)信息,包括權(quán)限、組、用戶和時(shí)間等,無(wú)返回對(duì)象。5es少兒編程網(wǎng)-https://www.pxcodes.com
shutil.copy(file1,file2)內(nèi)容和權(quán)限復(fù)制
復(fù)制文件的內(nèi)容和權(quán)限,相當(dāng)于先執(zhí)行了copyfile再執(zhí)行了copysmode。5es少兒編程網(wǎng)-https://www.pxcodes.com
shutil.copy2(file1,file2)內(nèi)容和權(quán)限復(fù)制
復(fù)制文件的內(nèi)容及所有狀態(tài)信息,相當(dāng)于先執(zhí)行了copyfile再執(zhí)行了copystart。5es少兒編程網(wǎng)-https://www.pxcodes.com
shutil.copytree()遞歸復(fù)制
遞歸地復(fù)制文件內(nèi)容及狀態(tài)信息5es少兒編程網(wǎng)-https://www.pxcodes.com
移動(dòng)文件5es少兒編程網(wǎng)-https://www.pxcodes.com
使用函數(shù)shutil.move()函數(shù)可以遞歸地移動(dòng)文件或重命名,并返回目標(biāo),若目標(biāo)是現(xiàn)有目錄則src再當(dāng)前目錄移動(dòng);若目標(biāo)已經(jīng)存在且不是目錄,則可能會(huì)被覆蓋。
5es少兒編程網(wǎng)-https://www.pxcodes.com
讀取壓縮及歸檔壓縮文件5es少兒編程網(wǎng)-https://www.pxcodes.com
使用函數(shù)shutil.make_archive()創(chuàng)建歸檔文件,并返回歸檔后的名稱。
語(yǔ)法如下:
shutil.make_archive(base_name,format[,root_dir[,base_dir[,verbose[,dry_run[,owner[,group[,logger]]]]]]])5es少兒編程網(wǎng)-https://www.pxcodes.com
5es少兒編程網(wǎng)-https://www.pxcodes.com
解壓文件5es少兒編程網(wǎng)-https://www.pxcodes.com
使用函數(shù)shutil.unpack_archive(filename[,extract_dir[,format]])分析拆檔。5es少兒編程網(wǎng)-https://www.pxcodes.com
filename是歸檔的完整路徑extract_dir是解壓歸檔的目標(biāo)目錄名稱format是解壓文件的格式import shutilimport os shutil.unpack_archive('D:PycharmProjectsHelloshutil-test.zip','D:\testdir')print(os.listdir('D:\testdir'))
5es少兒編程網(wǎng)-https://www.pxcodes.com
小結(jié)5es少兒編程網(wǎng)-https://www.pxcodes.com
需要注意的是不同的操作系統(tǒng)中,路徑分隔符不一樣,在文件處理時(shí)需要考慮。也可以使用os.sep()來(lái)替代文件分隔符,因?yàn)椴僮飨到y(tǒng)而造成的程序異常。此外處理文件時(shí)往往需要注意文件權(quán)限,還有注意文件和文件夾的區(qū)別,使用遞歸等。5es少兒編程網(wǎng)-https://www.pxcodes.com
Python系列博客持續(xù)更新中5es少兒編程網(wǎng)-https://www.pxcodes.com
大量免費(fèi)學(xué)習(xí)推薦,敬請(qǐng)?jiān)L問(wèn)python教程(視頻)5es少兒編程網(wǎng)-https://www.pxcodes.com
以上就是Python詳解os模塊和shutil模塊的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注少兒編程網(wǎng)其它相關(guān)文章!5es少兒編程網(wǎng)-https://www.pxcodes.com
- 上一篇
pycharm怎么刪除項(xiàng)目
簡(jiǎn)介pycharm刪除項(xiàng)目的方法:1、打開(kāi)pycharm軟件,點(diǎn)擊“File”,在下拉菜單欄中選擇“CloseProject”;2、在彈出的界面中,點(diǎn)擊需要?jiǎng)h除的項(xiàng)目右上角的叉號(hào);3、找到該項(xiàng)目所在路徑,選中項(xiàng)目文件,永久性刪除項(xiàng)目源文件。本教程操作環(huán)境:windows7系統(tǒng)、Pycharm2019版,
- 下一篇
pycharm怎么漢化
簡(jiǎn)介pycharm漢化的方法:首先下載pycharm漢化包,并找到【resource_zh.jar】文件;然后打開(kāi)pycharm安裝目錄的lib文件夾,將漢化包放入pycharm安裝目錄lib文件下面即可。本教程操作環(huán)境:windows7系統(tǒng)、pycharm2020版,DELLG3電腦。pycharm漢
