新聞中心
如何在Python語言中復制和刪除文件,以及怎樣將一個完整的文件路徑分解成目錄部分和文件名部分,***,我們講解目錄的創(chuàng)建,以及如何在目錄樹中移動目錄并處理文件。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的欽北網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
對于文件和目錄的處理,雖然可以通過操作系統(tǒng)命令來完成,但是Python語言為了便于開發(fā)人員以編程的方式處理相關(guān)工作,提供了許多處理文件和目錄的內(nèi)置函數(shù)。重要的是,這些函數(shù)無論是在Unix、Windows還是Macintosh平臺上,它們的使用方式是完全一致的。本文將詳細解釋這些函數(shù)的使用方法。
首先,我們介紹Python語言中類似于Windows系統(tǒng)的dir命令的列出文件功能,然后描述如何測試一個文件名對應的是一個標準文件、目錄還是鏈接,以及提取文件大小和日期的方法。
之后,我們還將介紹如何刪除文件和目錄,如何復制和刪除文件,以及怎樣將一個完整的文件路徑分解成目錄部分和文件名部分,***,我們講解目錄的創(chuàng)建,以及如何在目錄樹中移動目錄并處理文件。
一、顯示目錄內(nèi)容當我們想要列出當前目錄中所示:
- origdir = os.getcwd() # 將當前位置記下來
- newdir = os.path.join(os.pardir, ’mynewdir’)
- if not os.path.isdir(newdir):
- os.mkdir(newdir) # 或者os.mkdir(newdir,’0755’)
- os.chdir(newdir)
- ...
- os.chdir(origdir) # 返回原目錄
- os.chdir(os.environ[’HOME’]) # 移到主目錄
上述代碼使用了glob函數(shù),該函數(shù)的參數(shù)為要顯示的文件類型。在這里,文件類型是通過類似UNIX操作系統(tǒng)shell風格通配符描述的一些文件名來指定的。這些通配符的使用方法,具體請參考fnmatch模塊的文檔,那里有具體的說明和示例。為了顯示一個目錄中的全部文件,可以使用如下所示的os.listdir函數(shù):
- def checksize1(arg, dirname, files):
- for file in files:
- filepath = os.path.join(dirname, file)
- if os.path.isfile(filepath):
- size = os.path.getsize(filepath)
- if size > 1000000:
- sizesize_in_Mb = size/1000000.0
- arg.append((size_in_Mb, filename))
- bigfiles = []
- root = os.environ[’HOME’]
- os.path.walk(root, checksize1, bigfiles)
- for size, name in bigfiles:
- print name, ’大小為’, size, ’Mb’
我們知道,文件名、目錄名和鏈接名都是用一個字符串作為其標識符的,但是給我們一個標識符,我們該如何確定它所指的到底是常規(guī)文件文件名、目錄名還是鏈接名呢?這時,我們可以使用os.path模塊提供的isfile函數(shù)、isdir函數(shù)和islink函數(shù)來達成我們的目標。
若要刪除單個文件的話,可以使用os.remove函數(shù),例如:os.remove(’mydata.dat’)。Os.remove的別名是os.unlink。不過后者跟傳統(tǒng)的UNIX操作系統(tǒng)以及Perl中清除文件的函數(shù)重名。我們可以使用下列方式來刪除一組文件,如所有以.jpg以及*.gif為擴展名的文件:
- def somefunc(arg, dirname, files):
- origdir = os.getcwd(); os.chdir(dirname)
tasks> - os.chdir(origdir)
- os.path.walk(root, somefunc, arg)
大家知道,只有當目錄中內(nèi)容已經(jīng)被清空的時候,我們才可以使用rmdir命令來刪除該目錄。不過,我們經(jīng)常想要刪除一個含有許多文件的目錄樹,這時我們可以使用shutil模塊提供的rmtree函數(shù),如下所示:
- def somefunc(arg, dirname, files):
- origdir = os.getcwd(); os.chdir(dirname)
tasks> - os.chdir(origdir)
- os.path.walk(root, somefunc, arg)
它實際上是過于嚴厲。我們需要的只是一個被遍歷的一個文件/目錄名序列。實際上,我們并不關(guān)心名稱是否存儲在一個列表、元組或者數(shù)值數(shù)組中,所以更好的測試應該像下面這樣
假設(shè)我們想要在自己的主目錄下創(chuàng)建一個新目錄py/src/test1,但是目前py、src和test1都不存在。如果使用mkdir命令來創(chuàng)建的話。需要使用三次才能建好這個嵌套的目錄,但是使用Python語言提供的os.makedirs命令的話,則無需這樣麻煩了,該命令可以一次建好整個目錄。
【編輯推薦】
- 有關(guān)Python系統(tǒng)文件進行介紹指導
- 如何正確的使用Python函數(shù)
- 對Python 構(gòu)建工具進行詳細介紹分析
- PythonAndroid淺析Python優(yōu)勢所在
- 如何使用Python模塊解析配置文件?
網(wǎng)頁題目:對于Python語言進行處理文件解讀
網(wǎng)站URL:http://www.dlmjj.cn/article/dppgoge.html


咨詢
建站咨詢
