自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

對(duì)于Python語(yǔ)言進(jìn)行處理文件解讀

開(kāi)發(fā) 后端
使用操作系統(tǒng)命令來(lái)完成,但是Python語(yǔ)言為了便于開(kāi)發(fā)人員以編程的方式處理相關(guān)工作,提供了許多處理文件和目錄的內(nèi)置函數(shù)。

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

對(duì)于文件和目錄的處理,雖然可以通過(guò)操作系統(tǒng)命令來(lái)完成,但是Python語(yǔ)言為了便于開(kāi)發(fā)人員以編程的方式處理相關(guān)工作,提供了許多處理文件和目錄的內(nèi)置函數(shù)。重要的是,這些函數(shù)無(wú)論是在Unix、Windows還是Macintosh平臺(tái)上,它們的使用方式是完全一致的。本文將詳細(xì)解釋這些函數(shù)的使用方法。

首先,我們介紹Python語(yǔ)言中類似于Windows系統(tǒng)的dir命令的列出文件功能,然后描述如何測(cè)試一個(gè)文件名對(duì)應(yīng)的是一個(gè)標(biāo)準(zhǔn)文件、目錄還是鏈接,以及提取文件大小和日期的方法。

之后,我們還將介紹如何刪除文件和目錄,如何復(fù)制和刪除文件,以及怎樣將一個(gè)完整的文件路徑分解成目錄部分和文件名部分,***,我們講解目錄的創(chuàng)建,以及如何在目錄樹中移動(dòng)目錄并處理文件。

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

  1. origdir = os.getcwd() # 將當(dāng)前位置記下來(lái)  
  2. newdir = os.path.join(os.pardir, ’mynewdir’)  
  3. if not os.path.isdir(newdir):  
  4. os.mkdir(newdir) # 或者os.mkdir(newdir,’0755’)  
  5. os.chdir(newdir)  
  6. ...  
  7. os.chdir(origdir) # 返回原目錄  
  8. 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ù):

  1. def checksize1(arg, dirname, files):  
  2.  
  3.   for file in files:  
  4.  
  5.   filepath = os.path.join(dirname, file)  
  6.  
  7.   if os.path.isfile(filepath):  
  8.  
  9.   size = os.path.getsize(filepath)  
  10.  
  11.   if size > 1000000:  
  12.  
  13.   sizesize_in_Mb = size/1000000.0  
  14.  
  15.   arg.append((size_in_Mb, filename))  
  16.  
  17.   bigfiles = []  
  18.  
  19.   root = os.environ[’HOME’]  
  20.  
  21.   os.path.walk(root, checksize1, bigfiles)  
  22.  
  23.   for size, name in bigfiles:  
  24.  
  25.   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ò)展名的文件:

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

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

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

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

假設(shè)我們想要在自己的主目錄下創(chuàng)建一個(gè)新目錄py/src/test1,但是目前py、src和test1都不存在。如果使用mkdir命令來(lái)創(chuàng)建的話。需要使用三次才能建好這個(gè)嵌套的目錄,但是使用Python語(yǔ)言提供的os.makedirs命令的話,則無(wú)需這樣麻煩了,該命令可以一次建好整個(gè)目錄。

【編輯推薦】

  1. 有關(guān)Python系統(tǒng)文件進(jìn)行介紹指導(dǎo)
  2. 如何正確的使用Python函數(shù)
  3. 對(duì)Python 構(gòu)建工具進(jìn)行詳細(xì)介紹分析
  4. PythonAndroid淺析Python優(yōu)勢(shì)所在
  5. 如何使用Python模塊解析配置文件?
責(zé)任編輯:chenqingxiang 來(lái)源: csdn
相關(guān)推薦

2010-02-23 17:35:46

Python

2010-02-23 16:46:27

Python設(shè)計(jì)語(yǔ)言

2010-05-06 10:31:32

Tuxedo負(fù)載均衡

2010-02-03 13:37:59

Python 特性

2010-03-01 14:02:26

Python批處理語(yǔ)言

2019-03-13 10:38:43

Nginx收購(gòu)Web

2010-03-05 09:40:08

Python遞歸

2009-11-26 13:27:10

VS2003水晶報(bào)表

2024-11-07 15:49:34

2010-02-26 09:55:22

Python應(yīng)用程序

2010-02-22 15:49:35

Python應(yīng)用程序

2009-12-08 11:08:27

WCF雙向

2010-02-04 14:16:45

Android平臺(tái)

2010-03-01 09:43:09

Python編程語(yǔ)言

2010-02-23 09:52:39

2009-12-08 18:14:53

WCF Service

2011-11-10 09:38:11

HTML 5

2009-12-11 14:16:11

VS2010 Ulti

2009-12-24 15:51:34

ADO屬性

2009-12-08 14:51:35

Silverlight
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)