檔案操作
編碼表
-
ASCII碼
基於英文的編碼,一個字元佔一個位元組
-
GBK / GB2312
基於中文的編碼,一個漢字字元佔兩個位元組
-
unicode
基於全球語言的編碼,一個字元佔四個位元組
-
utf-8
基於unicode的壓縮,一個字元佔三個位元組
編碼/解碼
-
編碼
# 將字串str1編碼成UTF-8格式的位元組序列 str1 = "一起加油!" str2 = str1.encode("UTF-8") print(str2) # 再將位元組序列str2解碼按照UTF-8格式解碼成對應字元 str3 = str2.decode("UTF-8") print(str3)
覆蓋寫入:w
-
以字元方式覆蓋寫入:w
f = open("test2", mode="w", encoding="UTF-8") f.write("6666666") f.close()
-
以位元組方式覆蓋寫入:wb
f = open("test1", mode="wb") f.write("6666666".encode("UTF-8")) f.close()
追加寫入:a
-
以字元方式追加寫入:a
f = open("test2", mode="a", encoding="UTF-8") f.write("6666666\n") f.close()
-
以位元組方式追加寫入:ab
f = open("test1", mode="ab") f.write("\n6666666".encode("UTF-8")) f.close()
讀取:r
-
以字元方式讀取:r
f = open("test2", mode="r", encoding="GBK") s1 = f.read() f.close() print(s1)
-
以位元組方式讀取:rb
f = open("test2", mode="rb") s1 = f.read().decode("GBK") f.close() print(s1)
開啟檔案的另一種方式
# 第一種
f = open("test2", mode="r", encoding="GBK")
s1 = f.read()
f.close()
print(s1)
# 第二種
s1 = ''
with open("test2", mode="r", encoding="GBK") as f:
s1 = f.read()
print(s1)