天天看點

python處理檔案夾_python檔案及檔案夾操作

1.open()各模式詳情

'r'        以隻讀模式打開,沒有write()方法,預設打開方式

'w'       以隻寫模式打開,檔案不存在時會自動建立檔案,檔案已存在時會清除檔案内容并重建檔案。這種模式打開的檔案沒有read()方法。

'a'        以追加模式打開,有write()方法,檔案不存在時會自動建立檔案,寫入時隻能寫到檔案末尾,打開的檔案沒有read()方法

'r+' 'w+' 'a+'是讀寫模式,其他類似'r' 'w' 'a'

2. 常見檔案操作函數/方法

txt.read([size])      #size為讀取的長度,以byte為機關;若省略,預設全部讀取

txt.readline([size])     #讀取一行。如果定義了size,則size表示讀取内容的總長度;size大小超過該行長度,讀取一行

txt.readlines([size])    #把檔案每一行作為一個list的一個成員,并傳回這個list。如果提供size,則size表示讀取内容的總長度,可能隻讀取檔案的一部分。

txt.write("Something you want to type in.")    #把一個字元串寫到檔案中。字元串不會自動加換行符

txt.close()    #關閉檔案,檔案使用完畢後要記得及時關閉

txt.tell()    #傳回檔案操作标記的目前位置,以檔案開頭為原點

txt.next()    #傳回下一行,并将檔案操作标記移至下一行

txt.seek(offset[,whence])    #将檔案操作标記移到offset處。未提供whence參數時,offset一般相對于檔案開頭來計算,為正數。如果提供了whence參數的話,whence為0則從頭開始計算;whence為1表示以目前位置為原點開始計算;whence為2表示以檔案末尾為原點開始計算

3.檔案和檔案夾操作

Python中對檔案、檔案夾的操作需涉及到os子產品和shutil子產品

(1)删除一個檔案:os.remove("file")

os.remove("test.txt")        #删除目前目錄下test.txt檔案

(2)重命名:os.rename(old,new),檔案或目錄均使用此指令

os.rename(r'e:\pythoncoding\test\test.txt',r'e:\pythoncoding\test\test1.txt')        #将e:\pythoncoding\test\test.txt檔案重命名為test1.txt

os.rename(r'e:\pythoncoding\test',r'e:\pythoncoding\test1')      #将test檔案夾重命名為test1

(3)傳回指定目錄下的所有檔案和目錄名:os.listdir()

for i in os.listdir(os.getcwd()):

print i                # 列印出目前工作目錄所有檔案和檔案夾名

(4)得到目前工作目錄,即目前Python腳本工作的目錄路徑: os.getcwd()

(5)建立多級目錄:os.makedirs(r"c:\python\test")

建立單個目錄:os.mkdir("test")

os.makedirs(r"e:\test\test")        #建立test檔案夾,若其父目錄不存在則自動建立

os.mkdir(r"e:\test\test")       #建立test檔案夾,若其父目錄不存在則抛出異常

(6)删除目錄: os.rmdir()

删除多級目錄:os.removedirs(r"c:\test\test")

os.removedirs(r"c:\test\test")

#删除目錄及父目錄。先删除C:\test\test目錄,然後删除C:\test和c:目錄。如果有非空子目錄不能删除,會抛出異常

(7)①去掉目錄路徑,傳回檔案名:os.path.basename()

python處理檔案夾_python檔案及檔案夾操作

②去掉檔案名,傳回目錄:os.path.dirname()

python處理檔案夾_python檔案及檔案夾操作

③os.path.join():将路徑名和檔案名組合起來

python處理檔案夾_python檔案及檔案夾操作

④os.path.split():傳回目錄路徑和檔案名組成的元組

python處理檔案夾_python檔案及檔案夾操作

⑤os.path.splitdrive():傳回驅動器目錄和剩餘的路徑名組成的元組

python處理檔案夾_python檔案及檔案夾操作

⑥os.path.splitext():傳回檔案名和檔案擴充名組成的元組

python處理檔案夾_python檔案及檔案夾操作

(8)獲得資訊相關函數

os.path.getatime():傳回最近通路時間

os.path.getctime():傳回檔案建立時間

os.path.getmtime():傳回檔案最近修改時間

os.path.getsize():傳回檔案大小(位元組機關)

python處理檔案夾_python檔案及檔案夾操作

(9)邏輯判斷相關函數

os.path.exists():判斷檔案或目錄是否存在,存在傳回True,否則傳回False

os.path.isabs():判斷路徑是否為絕對路徑,是則傳回為True,否則傳回False

os.path.isdir():判斷指定路徑是否存在且為目錄,若是則傳回True,否則傳回False

os.path.isfile():判斷指定路徑是否存在且為檔案,若是則傳回True,否則傳回False

os.path.islink():判斷指定路徑是否存在且為一個符号連結,若是則傳回True,否則傳回False

os.path.ismount():判斷指定路徑是否存在且為一個挂載點,若是則傳回True,否則傳回False

python處理檔案夾_python檔案及檔案夾操作

(10)訓示你正在使用的平台:os.name   對于Windows,它是'nt',而對于Linux/Unix使用者,它是'posix'

>>> os.name

'nt'

(11)複制檔案:

①shutil.copyfile("oldfile","newfile"):兩個參數都隻能是檔案,相當于把oldfile複制到newfile

>>> import shutil

>>> shutil.copyfile(r"E:\Code\CPP\test1.txt",r"E:\Code\CPP\test2.txt")

②shutil.copy("oldfile","newfile"):oldfile隻能是檔案,newfile可以是檔案,也可以是目标目錄。newfile為檔案時,和copyfile()作用相同;為目錄時,則把oldfile複制到新目錄

>>> shutil.copy(r"E:\Code\CPP\test1.txt",r"E:\Code\CPP\test2.txt")

>>> shutil.copy(r"E:\Code\CPP\test1.txt",r"E:\Code\CPP\test")

(12)複制檔案夾:

shutil.copytree("olddir","newdir"):olddir和newdir都隻能是目錄,且newdir必須不存在。此指令把olddir中的檔案全部複制到newdir中。

>>> shutil.copytree(r"E:\Code\CPP\test1",r"E:\Code\CPP\test2")

(13)移動檔案(目錄)

shutil.move("oldpos","newpos"):移動檔案或目錄。第一個參數可以為檔案或目錄。第一個參數為目錄時,第二個參數必須為目錄;第一個參數為檔案時,第二個參數為目錄、檔案均可。

>>> # 兩個參數均為檔案,将檔案1的内容剪切到檔案2,然後删除檔案1

...

>>> shutil.move(r"E:\Code\CPP\test1.txt",r"E:\Code\CPP\test2.txt")

>>>

>>> # 第一個參數為檔案,第二個參數為目錄,則将檔案1剪切到目錄2

...

>>> shutil.move(r"E:\Code\CPP\test1.txt",r"E:\Code\CPP\test1")

>>>

>>> # 兩個參數均為目錄,則将第一個目錄的所有檔案剪切到第二個目錄,并删除目錄1

...

>>> shutil.move(r"E:\Code\CPP\test1",r"E:\Code\CPP\test2")

shutil.rmtree("dir"):删除目錄,空目錄、非空目錄均可删除