python3文件的编码类型是什么_python3.x - 怎么查看某个文件的编码方式?python
問 題
python的確很贊,但是編碼這個問題真的太尿性了。。。
現在我有一個文件,不論他的編碼方式是什么,我都想把它轉化成utf-8的格式。我的想法是先讀取文件內容,保存到data變量中去,然后再以utf-8的格式寫入文件。
但是現在遇到的問題是當我要打開某文件是得知道它的編碼格式是什么,不然就總是報錯,文件也打不開。
比如說我執行下面的代碼
with codecs.open("test.csv","r",encoding="utf-8") as f:
data = f.read()
print(data)
print(chardet.detect(data))
除非test.csv文件的確是以utf-8的格式編碼的才能正常打開,如果我用記事本修改成Unicode編碼,結果就會報錯,錯誤信息如下
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
所以想問一下有沒有什么辦法可以知道整個文件的編碼方式,最好是不用讀寫操作,或者直接給一個庫函數。
我有試過用chardet.detect()查看文件編碼格式,但是總是報錯。錯誤信息如下
Traceback (most recent call last):
File "E:\Code\python\Flask\csv-mysql\test.py", line 44, in
print(chardet.detect(data))
File "C:\Python35\lib\site-packages\chardet\__init__.py", line 25, in detect
raise ValueError('Expected a bytes object, not a unicode object')
ValueError: Expected a bytes object, not a unicode object
解決方案
with open("test.csv","rb") as f:
data = f.read()
print(chardet.detect(data))
用二進制模式讀取
掃一掃關注IT屋
微信公眾號搜索 “ IT屋 ” ,選擇關注與百萬開發者在一起
總結
以上是生活随笔為你收集整理的python3文件的编码类型是什么_python3.x - 怎么查看某个文件的编码方式?python的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity3D内存释放
- 下一篇: 《浅谈架构之路:前后端分离模式》