資訊內容
Python詳解os模塊和shutil模塊

文章目錄5es少兒編程網-https://www.pxcodes.com
文件的處理獲取系統類型獲取系統環境執行系統命令操作目錄與文件文件和目錄高級處理復制文件移動文件讀取壓縮及歸檔壓縮文件解壓文件小結(相關免費學習推薦:python視頻教程)5es少兒編程網-https://www.pxcodes.com
os模塊和shutil模塊是Python處理文件/目錄的主要方式。os模塊提供了一種使用操作系統相關功能的便捷方式,shutil模塊是一種高級的文件/目錄操作工具。5es少兒編程網-https://www.pxcodes.com
文件的處理5es少兒編程網-https://www.pxcodes.com
os模塊提供了一些便捷功能來使用操作系統資源,比如讀取資源目錄下的文件、在命令行查看某路徑下文件的所有內容等。5es少兒編程網-https://www.pxcodes.com
獲取系統類型5es少兒編程網-https://www.pxcodes.com
對代碼進行兼容性開發以適應不同操作系統時通過操作系統類型進行判斷就可以輕松解決。5es少兒編程網-https://www.pxcodes.com
import osimport sysprint(os.name) # 返回nt代表Windows,posix代表Linuxprint(sys.platform) # 更詳細信息5es少兒編程網-https://www.pxcodes.com
獲取系統環境5es少兒編程網-https://www.pxcodes.com
對環境變量進行相關設置時,常常會調用模塊environ模塊。os.environ是以字典的形式返回系統環境變量,要獲取具體的屬性值,可以用索引,也可以用方法getenv():5es少兒編程網-https://www.pxcodes.com
import osprint(os.environ)print(os.environ['PATH'])print(os.getenv('PATH'))5es少兒編程網-https://www.pxcodes.com
執行系統命令5es少兒編程網-https://www.pxcodes.com
使用os模塊system()方法可以執行shell命令,正常執行會返回0。使用格式是os.system("bash command")。5es少兒編程網-https://www.pxcodes.com
在非控制臺編寫時,system()只會調用系統命令而不會執行,執行結果可通過popen()函數返回file對象進行讀取獲得。5es少兒編程網-https://www.pxcodes.com
import os os.system('ping www.baidu.com')os.popen('ping www.baidu.com').read()5es少兒編程網-https://www.pxcodes.com
操作目錄與文件5es少兒編程網-https://www.pxcodes.com
使用os模塊操作目錄和文件時Python開發**為常見的功能之一。5es少兒編程網-https://www.pxcodes.com
方法說明示例os.getcwd()獲取當前目錄路徑





若路徑字符串**后一個字符是,則只有文件夾部分有值;
若路徑字符串中均無,則只有文件名部分有值;
若路徑字符串有且不再**后,則文件夾文件名都有值。










(插播反爬信息 )博主CSDN地址:https://wzlodq.blog.csdn.net/5es少兒編程網-https://www.pxcodes.com
文件和目錄高級處理5es少兒編程網-https://www.pxcodes.com
相比os模塊,shutil模塊用于文件和目錄的高級處理,提供了支持文件賦值、移動、刪除、壓縮和解壓等功能。5es少兒編程網-https://www.pxcodes.com
復制文件5es少兒編程網-https://www.pxcodes.com
shutil模塊的主要作用是賦值文件,大概有以下七種實現:5es少兒編程網-https://www.pxcodes.com
shutil.copyfileobj(file1,file2)覆蓋復制
將file1的內容覆蓋file2,file1、file2表示打開的文件對象。5es少兒編程網-https://www.pxcodes.com
shutil.copyfile(file1,file2)覆蓋復制
也是覆蓋,但是無須打開文件,直接用文件名進行覆蓋(其源碼還是調用的copyfileobj)。5es少兒編程網-https://www.pxcodes.com
shutil.copymode(file1,file2)權限復制
僅復制文件權限,不更改文件內容、組和用戶,無返回對象。5es少兒編程網-https://www.pxcodes.com
shutil.copystart(file1,file2)狀態復制
復制文件的所有狀態信息,包括權限、組、用戶和時間等,無返回對象。5es少兒編程網-https://www.pxcodes.com
shutil.copy(file1,file2)內容和權限復制
復制文件的內容和權限,相當于先執行了copyfile再執行了copysmode。5es少兒編程網-https://www.pxcodes.com
shutil.copy2(file1,file2)內容和權限復制
復制文件的內容及所有狀態信息,相當于先執行了copyfile再執行了copystart。5es少兒編程網-https://www.pxcodes.com
shutil.copytree()遞歸復制
遞歸地復制文件內容及狀態信息5es少兒編程網-https://www.pxcodes.com
移動文件5es少兒編程網-https://www.pxcodes.com
使用函數shutil.move()函數可以遞歸地移動文件或重命名,并返回目標,若目標是現有目錄則src再當前目錄移動;若目標已經存在且不是目錄,則可能會被覆蓋。5es少兒編程網-https://www.pxcodes.com
讀取壓縮及歸檔壓縮文件5es少兒編程網-https://www.pxcodes.com
使用函數shutil.make_archive()創建歸檔文件,并返回歸檔后的名稱。
語法如下:
shutil.make_archive(base_name,format[,root_dir[,base_dir[,verbose[,dry_run[,owner[,group[,logger]]]]]]])5es少兒編程網-https://www.pxcodes.com
5es少兒編程網-https://www.pxcodes.com
解壓文件5es少兒編程網-https://www.pxcodes.com
使用函數shutil.unpack_archive(filename[,extract_dir[,format]])分析拆檔。5es少兒編程網-https://www.pxcodes.com
filename是歸檔的完整路徑extract_dir是解壓歸檔的目標目錄名稱format是解壓文件的格式import shutilimport os shutil.unpack_archive('D:PycharmProjectsHelloshutil-test.zip','D:\testdir')print(os.listdir('D:\testdir')) 5es少兒編程網-https://www.pxcodes.com
小結5es少兒編程網-https://www.pxcodes.com
需要注意的是不同的操作系統中,路徑分隔符不一樣,在文件處理時需要考慮。也可以使用os.sep()來替代文件分隔符,因為操作系統而造成的程序異常。此外處理文件時往往需要注意文件權限,還有注意文件和文件夾的區別,使用遞歸等。5es少兒編程網-https://www.pxcodes.com
Python系列博客持續更新中5es少兒編程網-https://www.pxcodes.com
大量免費學習推薦,敬請訪問python教程(視頻)5es少兒編程網-https://www.pxcodes.com
以上就是Python詳解os模塊和shutil模塊的詳細內容,更多請關注少兒編程網其它相關文章!5es少兒編程網-https://www.pxcodes.com

- 上一篇
pycharm怎么刪除項目
簡介pycharm刪除項目的方法:1、打開pycharm軟件,點擊“File”,在下拉菜單欄中選擇“CloseProject”;2、在彈出的界面中,點擊需要刪除的項目右上角的叉號;3、找到該項目所在路徑,選中項目文件,永久性刪除項目源文件。本教程操作環境:windows7系統、Pycharm2019版,
- 下一篇
pycharm怎么漢化
簡介pycharm漢化的方法:首先下載pycharm漢化包,并找到【resource_zh.jar】文件;然后打開pycharm安裝目錄的lib文件夾,將漢化包放入pycharm安裝目錄lib文件下面即可。本教程操作環境:windows7系統、pycharm2020版,DELLG3電腦。pycharm漢