1. 程式人生 > >python去掉BOM頭的方法

python去掉BOM頭的方法

span 意思 身份證 產生 就是 處理方法 utf repl div

今天在寫批量生成身份證號造數據的時候出現了問題,其中一個是報不能轉成int型,後經查找,發現是utf-8BOM頭的問題。

什麽是BOM?

  在utf-8編碼文件中BOM在文件頭部,占用三個字節,用來標示該文件屬於utf-8編碼。其實UTF-8 的BOM對UFT-8沒有作用,是為了支援UTF-16,UTF-32才加上的BOM,BOM簽名的意思就是告訴編輯器當前文件采用何種編碼,方便編輯器識別,但是BOM雖然在編輯器中不顯示,但是會產生輸出,就像多了一個空行。

類似WINDOWS自帶的記事本等軟件,在保存一個以UTF-8編碼的文件時,會在文件開始的地方插入三個不可見的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隱藏的字符,用於讓記事本等編輯器識別這個文件是否以UTF-8編碼。

  當在讀txt時一旦讀到BOM頭就會報錯。

處理方法如下:

import codecs

with open(file_path, "r") as file:
    data = file.read()
    data = data.replace(codecs.BOM_UTF8, "")
    districtlist = data.split(\n)
    file.closed

python去掉BOM頭的方法