您好,登錄后才能下訂單哦!
文件與目錄操作是編程語言中非常重要的功能,Python也對其提供了相應的API支持,這篇博文就是具體介紹它們的使用方法。
對文件進行操作在Python中分為3個步驟,首先要打開文件,然后是對文件進行讀寫操作,最后需要關(guān)閉文件。
1、打開文件使用的是open()函數(shù),它提供初始化輸入、輸出(I/O)操作的通用接口,成功打開文件后返回一個文件對象,打開失敗則引發(fā)一個錯誤。打開文件的語法如下:
file_object = open(file_name,access_mode [,buffering] )
file_name是要打開的文件名,可以是文件的絕對路徑或相對路徑。絕對路徑是文件在硬盤上真正存在的路徑,如:c:\python\src是絕對路徑。相對路徑是相對于當前運行程序所在路徑的目標文件位置,表示相對路徑時,“.”表示當前位置;“..”表示當前位置的上一級。如“..\images”或“.\DB”是相對路徑,使用相對路徑的好處是,當程序遷移時,由于絕對路徑與本地計算機關(guān)聯(lián)緊密,程序運行可能會出錯,所以通常使用相對路徑。
access_mode表示文件打開的模式,常用的模式如下:
r表示的是對文件進行讀取操作,w表示寫入數(shù)據(jù)到文件中,a是追加數(shù)據(jù)到文件的末尾,b是標識文件為二進制文件,與rwa組合使用,如打開音視頻等二進制文件需要使用b模式,不指定模式時默認是r模式。
buffering表示訪問文件采用的緩沖方式。0表示不緩沖,1表示只緩沖1行,任何大于1的值表示按給定值作為緩沖大小,不提供該參數(shù)或給定負值表示使用系統(tǒng)默認緩沖機制。
(2)對文件進行讀寫等操作后需要關(guān)閉文件,目的是釋放文件占用的資源,使用的是file.close()方法,file表示的是已打開的文件對象。如果不顯式的關(guān)閉文件,Python的垃圾收集機制也會在文件對象的引用計數(shù)為0時自動關(guān)閉文件,但是可能會丟失輸出緩沖區(qū)的數(shù)據(jù)。如果不及時關(guān)閉已經(jīng)打開的文件,該文件的資源會被占用,將無法對該文件執(zhí)行其他操作,如刪除文件的操作。所以要養(yǎng)成良好的習慣,在完成文件操作后,要及時關(guān)閉文件,釋放資源。
(3)打開和關(guān)閉文件的示例代碼如下:
fp = open('e:/readme.txt','w') #絕對路徑寫文件
fp.close() #關(guān)閉文件
fp = open('./readme.txt','r') #相對路徑,讀文件
fp.close()
第一個是使用絕對路徑,“w”表示對文件進行讀寫操作,如果文件不存在則會創(chuàng)建一個空文件。第二個是使用相對路徑,在當前Python文件的目錄下查找,“r”表示讀取,如果找不到則會出錯,找到則會讀取文件。
(4)常用的文件對象內(nèi)建方法
文件對象的操作方法有很對,常用的方法總結(jié)如下:
(5)目錄操作
1)可以使用getcwd()函數(shù)獲取當前路徑。
#代碼如下:
import os
print os.getcwd()
#執(zhí)行結(jié)果如下:
C:\Users\Administrator\Desktop #因為我Python的程序在桌面,所以顯示的是這個路徑
2)使用listdir(path)可以獲得目錄下面的所有文件的目錄列表。
#代碼如下:
import os
print os.listdir(os.getcwd())
#執(zhí)行結(jié)果如下:
['aa.py', 'APP', 'desktop.ini', 'files']
3)創(chuàng)建新的目錄可以使用mkdir(path)函數(shù)。
#代碼如下:
import os
print os.mkdir('test')
#執(zhí)行結(jié)果就是在當前路徑下新建了一個目錄,也可以指定全路徑進行創(chuàng)建
刪除目錄時,只要將mkdir換成rmdir即可。
4)判斷目錄是否存在使用path.isdir(path)。
#代碼如下
import os
print os.path.isdir('test')
#執(zhí)行后,如果目錄存在,則返回True,若不存在,則返回False。
判斷是否是文件可以使用path.isfile(path)。
#代碼如下
import os
print os.path.isfile('test')
———————— 本文至此結(jié)束,感謝閱讀 ————————
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。