1.open()各模式詳情python
'r' 以只讀模式打開,沒有write()方法,默認打開方式函數
'w' 以只寫模式打開,文件不存在時會自動建立文件,文件已存在時會清除文件內容並重建文件。這種模式打開的文件沒有read()方法。spa
'a' 以追加模式打開,有write()方法,文件不存在時會自動建立文件,寫入時只能寫到文件末尾,打開的文件沒有read()方法code
'r+' 'w+' 'a+'是讀寫模式,其餘相似'r' 'w' 'a' orm
2. 常見文件操做函數/方法rem
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模塊get
(1)刪除一個文件:os.remove("file")it
os.remove("test.txt") #刪除當前目錄下test.txt文件
(2)重命名:os.rename(old,new),文件或目錄均使用此命令class
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()
②去掉文件名,返回目錄:os.path.dirname()
③os.path.join():將路徑名和文件名組合起來
④os.path.split():返回目錄路徑和文件名組成的元組
⑤os.path.splitdrive():返回驅動器目錄和剩餘的路徑名組成的元組
⑥os.path.splitext():返回文件名和文件擴展名組成的元組
(8)得到信息相關函數
os.path.getatime():返回最近訪問時間
os.path.getctime():返回文件建立時間
os.path.getmtime():返回文件最近修改時間
os.path.getsize():返回文件大小(字節單位)
(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
(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"):刪除目錄,空目錄、非空目錄都可刪除