python去掉BOM頭的方法
阿新 • • 發佈:2018-01-23
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頭的方法