闡述Python語言中的各種模塊
Python語言里的腳本語言中最豐富和強大的類庫,足以支持絕大多數日常應用,在實際的程序開發過程中,Python語言常被稱為拼裝語言,這么說的原因是因為他能夠很輕松的把用其他語言制作的各種模塊。
本文將詳細解釋這些函數的使用方法。首先,我們介紹Python語言中類似于Windows系統的dir命令的列出文件功能。然后描述如何測試一個文件名對應的是一個標準文件、目錄還是鏈接。
以及提取文件大小和日期的方法。之后,我們還將介紹如何刪除文件和目錄。如何復制和刪除文件,以及怎樣將一個完整的文件路徑分解成目錄部分和文件名部分,最后,我們講解目錄的創建,以及如何在目錄樹中移動目錄并處理文件。
一、顯示目錄內容
當我們想要列出當前目錄中所有擴展名為.jpg或.gif的文件的時候,就可以使用glob模塊來完成此項任務,如下所示:
- import glob
- filelist = glob
上述代碼使用了glob函數,該函數的參數為要顯示的文件類型。在這里,文件類型是通過類似UNIX操作系統shell風格通配符描述的一些文件名來指定的。這些通配符的使用方法,具體請參考fnmatch模塊的文檔,那里有具體的說明和示例。為了顯示一個目錄中的全部文件,可以使用如下所示的os.listdir函數:
- files = os.listdir(r’C:\hpl\scripting\src\py\intro’) #適用于 Windows
- files = os.listdir(’/home/hpl/scripting/src/py/intro’) # 適用于Unix
- # 跨平臺版本:
- files = os.listdir(os.path.join(os.environ[’scripting’],
- ’src’, ’py’, ’intro’))
- files = os.listdir(os.curdir) # 當前目錄中的所有文件
- files = glob.glob(’*’) + glob.
二、測試文件類型
我們知道,文件名、目錄名和鏈接名都是用一個字符串作為其標識符的,但是給我們一個標識符,我們該如何確定它所指的到底是常規文件文件名、目錄名還是鏈接名呢?這時,我們可以使用os.path模塊提供的isfile函數、isdir函數和islink函數來達成我們的目標,如下所示:
- print myfile, ’是一個’,
- if os.path.isfile(myfile):
- print ’plain file’
- if os.path.isdir(myfile):
- print ’directory’
- if os.path.islink(myfile):
- print ’link’
- 您還可以查找文件的日期及其大小:
- time_of_last_access = os.path.getatime(myfile)
- time_of_last_modification = os.path.getmtime(myfile)
- size = os.path.getsize(myfile)
三、文件和目錄的刪除
若要刪除單個文件的話,可以使用os.remove函數,例如:os.remove(’mydata.dat’)。Os.remove的別名是os.unlink。不過后者跟傳統的UNIX操作系統以及Perl中清除文件的函數重名。我們可以使用下列方式來刪除一組文件,如所有以.jpg以及*.gif為擴展名的文件:
- import stat
- myfile_stat = os.stat(myfile)
- size = myfile_stat[stat.ST_SIZE]
- mode = myfile_stat[stat.ST_MODE]
- if stat.S_ISREG(mode):
- print ’%(myfile)是一個常規文件,大小為 %(size)d 字節’ %\
- vars()
大家知道,只有當Python目錄中內容已經被清空的時候,我們才可以使用rmdir命令來刪除該目錄。不過,我們經常想要刪除一個含有許多文件的目錄樹,這時我們可以使用shutil模塊提供的rmtree函數,如下所示:
- if isinstance(files, str): # files是個字符串嗎?
- files = [files] # 把files從字符串轉為列表
- if not isinstance(files, list): # files不是列表嗎?
- for file in files:
- if os.path.isdir(file):
- shutil.rmtree(file)
- elif os.path.isfile(file):
- os.remove(file)
Copytree的第三個參數規定對符號鏈接的處理,其中True表示保留符號鏈接;而False則意味著使用文件的物理副本替代符號鏈接。Python語言能夠很好地支持路徑名的跨平臺組成。
Os.path.join能使用正確的分界符(在UNIX和Mac OS X操作系統中使用/,在 Windows 上使用\)來聯接目錄和文件名,變量os.curdir和os.pardir分別表示當前工作目錄及其父目錄。 像下面的UNIX操作系統命令
【編輯推薦】