Python中的文件和目錄操作實現代碼
2020-02-23 04:46:24
供稿:網友
本文將詳細解釋這些函數的使用方法。首先,我們介紹Python語言中類似于Windows系統的dir命令的列出文件功能,然后描述如何測試一個文件名對應的是一個標準文件、目錄還是鏈接,以及提取文件大小和日期的方法。之后,我們還將介紹如何刪除文件和目錄,如何復制和刪除文件,以及怎樣將一個完整的文件路徑分解成目錄部分和文件名部分,最后,我們講解目錄的創建,以及如何在目錄樹中移動目錄并處理文件。
一、顯示目錄內容
當我們想要列出當前目錄中所有擴展名為.jpg或.gif的文件的時候,就可以使用glob模塊來完成此項任務,如下所示:
import glob
filelist = glob.glob('*.jpg') + glob.glob('*.gif')
上述代碼使用了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.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)
這里的時間以秒為單位,并且從1970年1月1日開始算起。為了獲取以天為單位的最后訪問日期,可以使用下列代碼:
import time # time.time()返回當前時間
age_in_days = (time.time()-time_of_last_access)/(60*60*24)
為了獲取文件的詳細信息,可以使用os.stat函數和stat模塊中的其它實用程序來達到目的,如下:
代碼如下:
import stat
myfile_stat = os.stat(myfile)