5.檔案操作

WangYao_BigData發表於2024-12-06

檔案操作

編碼表

  • 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)