開啟和關閉檔案
open 函式
用Python內建的open()函式開啟一個檔案,建立一個file物件,相關的方法才可以呼叫它進行讀寫 '''
模式 描述 r 以只讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。 rb 以二進位制格式開啟一個檔案用於只讀。檔案指標將會放在檔案的開頭。這是預設模式。 r+ 開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。 rb+ 以二進位制格式開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。 w 開啟一個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 wb 以二進位制格式開啟一個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 w+ 開啟一個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 wb+ 以二進位制格式開啟一個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 a 開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 ab 以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 a+ 開啟一個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。 ab+ 以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。 '''
open函式,建立一份files檔案
# eg_v1 files = open("file.txt","w") # "w" files.write("hello,welcome to python !!") # 在file.txt文字內輸入內容 files.close()
檔案讀取,read 方法
read()方法從一個開啟的檔案中讀取一個字串。需要重點注意的是,Python字串可以是二進位制資料
# eg_v2 files_v2 = open("file.txt","r") print (files_v2.read(20)) files_v2.close() # >>> hello,welcome to pyt # 讀取20個字元 # read()) 表示讀取全部內容 # readline( ) 表示逐行讀取
追加檔案內容
# eg_v3 files_v3 = open("file.txt","a") files_v3.write("\npython is very nice!!") files_v3.close()
file 檔案的屬性
# 屬性 描述 # file.closed 返回true如果檔案已被關閉,否則返回false。 # file.mode 返回被開啟檔案的訪問模式。 # file.name 返回檔案的名稱。 # file.softspace 如果用print輸出後,必須跟一個空格符,則返回false。否則返回true。 #eg_v4 print (files_v3.closed) # 檢查檔案是否已經關閉 # >>> True print (files_v3.mode) # 返回被開啟檔案的訪問模式 # >>> a print (files_v3.name) # 返回檔案的名稱。 # >>> file.txt
write 方法
files_v4 = open("file.txt","a") files_v4.write("\nbut,Not easy to learn") files_v4.close()
write()方法可將任何字串寫入一個開啟的檔案。需要重點注意的是,Python字串可以是二進位制資料 #write()方法不會在字串的結尾新增換行符('\n')
檔案定位
tell() 方法告訴你檔案內的當前位置
seek(offset [,from])方法改變當前檔案的位置,Offset 變數表示要移動的位元組數,From 變數指定開始移動位元組的參考位置
files_v5 = open("file.txt","r") files_v5.read(10) print (files_v5.tell()) # 當前指標位置 # >>> 10 files_v5.seek(0,0) # 將指標重定位 print (files_v5.tell()) # 當前指標位置 # >>> 0 files_v5.close()
檔案重新命名
檔案重新命名需要使用python的os模組
rename() 方法,需要兩個引數,當前的檔名和新檔名。
# import os os.rename("file.txt","file001.txt")
刪除檔案
# import os os.remove("file001.txt")
remove()方法.語法:os.remove(file_name)
file 檔案物件常用的函式
# 序號 方法及描述 # 1 file.close() 關閉檔案。關閉後檔案不能再進行讀寫操作。 # 2 file.flush() 重新整理檔案內部緩衝,直接把內部緩衝區的資料立刻寫入檔案, 而不是被動的等待輸出緩衝區寫入。 # 3 file.fileno() 返回一個整型的檔案描述符(file descriptor FD 整型), 可以用在如os模組的read方法等一些底層操作上。 # 4 file.isatty() 如果檔案連線到一個終端裝置返回 True,否則返回 False。 # 5 file.next() 返回檔案下一行。 # 6 file.read([size]) 從檔案讀取指定的位元組數,如果未給定或為負則讀取所有。 # 7 file.readline([size]) 讀取整行,包括 "\n" 字元。 # 8 file.readlines([sizehint]) 讀取所有行並返回列表,若給定sizeint>0,返回總和大約為sizeint位元組的行, 實際讀取值可能比sizhint較大, 因為需要填充緩衝區。 # 9 file.seek(offset[, whence]) 設定檔案當前位置 # 10 file.tell() 返回檔案當前位置。 # 11 file.truncate([size]) 擷取檔案,擷取的位元組通過size指定,預設為當前檔案位置。 # 12 file.write(str) 將字串寫入檔案,沒有返回值。 # 13 file.writelines(sequence) 向檔案寫入一個序列字串列表,如果需要換行則要自己加入每行的換行符。