溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中怎么實(shí)現(xiàn)處理文件

發(fā)布時(shí)間:2021-07-05 16:30:33 來(lái)源:億速云 閱讀:128 作者:Leah 欄目:編程語(yǔ)言

今天就跟大家聊聊有關(guān)Python中怎么實(shí)現(xiàn)處理文件,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

一、顯示目錄內(nèi)容當(dāng)我們想要列出當(dāng)前目錄中所示:

origdir = os.getcwd() # 將當(dāng)前位置記下來(lái)  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ù)為要顯示的文件類型。在這里,文件類型是通過(guò)類似UNIX操作系統(tǒng)shell風(fēng)格通配符描述的一些文件名來(lái)指定的。這些通配符的使用方法,具體請(qǐng)參考fnmatch模塊的文檔,那里有具體的說(shuō)明和示例。為了顯示一個(gè)目錄中的全部文件,可以使用如下所示的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’

我們知道,文件名、目錄名和鏈接名都是用一個(gè)字符串作為其標(biāo)識(shí)符的,但是給我們一個(gè)標(biāo)識(shí)符,我們?cè)撊绾未_定它所指的到底是常規(guī)文件文件名、目錄名還是鏈接名呢?這時(shí),我們可以使用os.path模塊提供的isfile函數(shù)、isdir函數(shù)和islink函數(shù)來(lái)達(dá)成我們的目標(biāo)。

若要?jiǎng)h除單個(gè)文件的話,可以使用os.remove函數(shù),例如:os.remove(’mydata.dat’)。Os.remove的別名是os.unlink。不過(guò)后者跟傳統(tǒng)的UNIX操作系統(tǒng)以及Perl中清除文件的函數(shù)重名。我們可以使用下列方式來(lái)刪除一組文件,如所有以.jpg以及*.gif為擴(kuò)展名的文件:

def somefunc(arg, dirname, files):  origdir = os.getcwd(); os.chdir(dirname)  <do tasks> os.chdir(origdir)  os.path.walk(root, somefunc, arg)

大家知道,只有當(dāng)目錄中內(nèi)容已經(jīng)被清空的時(shí)候,我們才可以使用rmdir命令來(lái)刪除該目錄。不過(guò),我們經(jīng)常想要?jiǎng)h除一個(gè)含有許多文件的目錄樹(shù),這時(shí)我們可以使用shutil模塊提供的rmtree函數(shù),如下所示:

def somefunc(arg, dirname, files):  origdir = os.getcwd(); os.chdir(dirname)  <do tasks> os.chdir(origdir)  os.path.walk(root, somefunc, arg)

它實(shí)際上是過(guò)于嚴(yán)厲。我們需要的只是一個(gè)被遍歷的一個(gè)文件/目錄名序列。實(shí)際上,我們并不關(guān)心名稱是否存儲(chǔ)在一個(gè)列表、元組或者數(shù)值數(shù)組中,所以更好的測(cè)試應(yīng)該像下面這樣

看完上述內(nèi)容,你們對(duì)Python中怎么實(shí)現(xiàn)處理文件有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI