python_檔案操作

Carter_qx發表於2019-01-17

一、檔案處理基本形式

 

# 1. 開啟檔案,得到檔案控制程式碼並賦值給一個變數
# 檔案控制程式碼 = open(`檔案路徑`, `模式`, `操作檔案的字元編碼`)

f = open(`carter`, `r`, encoding=`UTF-8`)  # 預設開啟模式就為r

# 2. 通過控制程式碼對檔案進行操作
data = f.read()
print(data)

# 3. 關閉檔案
f.close()  # 回收作業系統的資源

二、開啟檔案的模式

1. 開啟檔案的模式有(預設為文字模式):
r ,只讀模式【預設模式,檔案必須存在,不存在則丟擲異常】 w,只寫模式【不可讀;不存在則建立;存在則清空內容】 a, 之追加寫模式【不可讀;不存在則建立;存在則只追加內容】 2. 對於非文字檔案,我們只能使用b模式,"b"表示以位元組的方式操作(而所有檔案也都是以位元組的形式儲存的,使用這種模式無需考慮文字檔案的字元編碼、圖片檔案的jgp格式、視訊檔案的avi格式)
rb wb ab 注:以b方式開啟時,讀取到的內容是位元組型別,寫入時也需要提供位元組型別,不能指定編碼 3. 瞭解部分
"+" 表示可以同時讀寫某個檔案 r+, 讀寫【可讀,可寫】 w+,寫讀【可讀,可寫】 a+, 寫讀【可讀,可寫】 x, 只寫模式【不可讀;不存在則建立,存在則報錯】 x+ ,寫讀【可讀,可寫】 xb

三、操作檔案的方法

f.read() #讀取所有內容,游標移動到檔案末尾
f.readline() #讀取一行內容,游標移動到第二行首部
f.readlines() #讀取每一行內容,存放於列表中

f.write(`1111
222
`) #針對文字模式的寫,需要自己寫換行符
f.write(`1111
222
`.encode(`utf-8`)) #針對b模式的寫,需要自己寫換行符
f.writelines([`333
`,`444
`]) #檔案模式
f.writelines([bytes(`333
`,encoding=`utf-8`),`444
`.encode(`utf-8`)]) #b模式

#瞭解
f.readable() #檔案是否可讀
f.writable() #檔案是否可讀
f.closed #檔案是否關閉
f.encoding #如果檔案開啟模式為b,則沒有該屬性
f.flush() #立刻將檔案內容從記憶體刷到硬碟
f.name

 

小練習

while True:
    msg = """
 33[0;34m1 註冊
2 檢視 33[0m
    """
    print(msg)
    choice = input(`