python 文字處理操作

xie仗劍天涯發表於2017-03-15

開啟和關閉檔案

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)   向檔案寫入一個序列字串列表,如果需要換行則要自己加入每行的換行符。

  

 

相關文章