當前位置:首頁 » 編程語言 » python寫文件utf8

python寫文件utf8

發布時間: 2023-08-06 19:53:44

⑴ 怎麼在python里使用UTF-8編碼

在文件的頂部添加:
# -*- coding: utf-8 -*-
或者
str.encode("utf-8")

如果解決了您的問題請採納!
如果未解決請繼續追問

⑵ python文件為什麼加utf-8

python文件加utf-8的原因:

在python中有兩種類型的字元串類型:位元組字元串和unicode的字元串,加上utf-8可以正確的輸出中文,如果不加utf-8,中文輸出之後就是亂碼

示例如下:

執行結果:

更多Python知識,請關註:Python自學網!!

⑶ python的UTF-8問題

編碼問題需要注意:

  1. 你的py文件是utf8編碼的

  2. 在py文件開始的第一行加上 # -*- coding:utf-8 -*-

  3. 處理中文時,如果是自定義存儲中文的變數,最好用 a = u'xx'形式

  4. 如果是其他來源,先decode('來源是什麼編碼'),再encode('utf-8')

⑷ python 怎樣創建utf-8的文件

py2.7,需要調用codecs模塊來進行設置

#coding:utf-8
importsys
reload(sys)
sys.setdefaultencoding('utf-8')

importtraceback
importos
#含有中文時,最好用codecs打開
importcodecs

filepath=os.getcwd()+'/testfile.txt'

try:
withcodecs.open(filepath,'w+','utf-8')asf:
seq=[
'heheheheheheheheheheheh',
'hohohohohohohohohohohoho',
'hahahahahahahahahaha',
'這里又是哪裡 ']
f.write("******************** ")
f.writelines(seq)

withcodecs.open(filepath,'r','utf-8')asf:
foriinf.readlines():
printi

exceptException,e:
traceback.print_exc()
print"執行文件時報錯:"+str(e)

py3.6的open函數已經擴展了,可以直接設置encoding

#coding:utf-8

importtraceback
importos

filepath=os.getcwd()+'/testfile.txt'

try:
withopen(filepath,'w+',encoding='utf-8')asf:
seq=[
'heheheheheheheheheheheh',
'hohohohohohohohohohohoho',
'hahahahahahahahahaha',
'這里又是哪裡 ']
f.write("******************** ")
f.writelines(seq)

withopen(filepath,'r',encoding='utf-8')asf:
foriinf.readlines():
print(i)

exceptException:
traceback.print_exc()
print("執行文件時報錯")

⑸ 怎麼在Python里使用UTF-8編碼

概述

在python代碼即.py文件的頭部聲明即可

解析

py文件中的編碼

Python 默認腳本文件都是 ANSCII 編碼的,當文件 中有非 ANSCII 編碼范圍內的字元的時候就要使用"編碼指示"來修正一個 mole 的定義中,如果.py文件中包含中文字元(嚴格的說是含有非anscii字元),則需要在第一行或第二行指定編碼聲明:

# -*- coding=utf-8 -*-

#coding=utf-8

# 以上兩種選其一即可

其他的編碼如:gbk、gb2312也可以;否則會出現:

SyntaxError: Non-ASCII character 'xe4' in file test.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

python中的編碼與解碼

先說一下python中的字元串類型,在python中有兩種字元串類型,分別是 str 和 unicode,他們都是basestring的派生類;

str類型是一個包含Characters represent (at least) 8-bit bytes的序列;

unicode 的每個 unit 是一個 unicode obj;

在str的文檔中有這樣的一句話:

    The string data type is also used to represent arrays of bytes, e.g., to hold data read from a file.

也就是說在讀取一個文件的內容,或者從網路上讀取到內容時,保持的對象為str類型;如果想把一個str轉換成特定編碼類型,需要把str轉為Unicode,然後從unicode轉為特定的編碼類型如:utf-8、gb2312等。

拓展內容

utf-8編碼

UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字元編碼,也是一種前綴碼。它可以用來表示Unicode標准中的任何字元,且其編碼中的第一個位元組仍與ASCII兼容,這使得原來處理ASCII字元的軟體無須或只須做少部分修改,即可繼續使用。因此,它逐漸成為電子郵件、網頁及其他存儲或發送文字的應用中,優先採用的編碼。

UTF-8使用一至六個位元組為每個字元編碼(盡管如此,2003年11月UTF-8被RFC 3629重新規范,只能使用原來Unicode定義的區域,U+0000到U+10FFFF,也就是說最多四個位元組):

1、128個US-ASCII字元只需一個位元組編碼(Unicode范圍由U+0000至U+007F)。

2、帶有附加符號的拉丁文、希臘文、西里爾字母、亞美尼亞語、希伯來文、阿拉伯文、敘利亞文及它拿字母則需要兩個位元組編碼(Unicode范圍由U+0080至U+07FF)。

3、其他基本多文種平面(BMP)中的字元(這包含了大部分常用字,如大部分的漢字)使用三個位元組編碼(Unicode范圍由U+0800至U+FFFF)。

4、其他極少使用的Unicode輔助平面的字元使用四至六位元組編碼(Unicode范圍由U+10000至U+1FFFFF使用四位元組,Unicode范圍由U+200000至U+3FFFFFF使用五位元組,Unicode范圍由U+4000000至U+7FFFFFFF使用六位元組)。

對上述提及的第四種字元而言,UTF-8使用四至六個位元組來編碼似乎太耗費資源了。但UTF-8對所有常用的字元都可以用三個位元組表示,而且它的另一種選擇,UTF-16編碼,對前述的第四種字元同樣需要四個位元組來編碼,所以要決定UTF-8或UTF-16哪種編碼比較有效率,還要視所使用的字元的分布范圍而定。不過,如果使用一些傳統的壓縮系統,比如DEFLATE,則這些不同編碼系統間的的差異就變得微不足道了。若顧及傳統壓縮演算法在壓縮較短文字上的效果不大,可以考慮使用Unicode標准壓縮格式(SCSU)。

互聯網工程工作小組(IETF)要求所有互聯網協議都必須支持UTF-8編碼。互聯網郵件聯盟(IMC)建議所有電子郵件軟體都支持UTF-8編碼。

⑹ 如何設置python的編碼格式為utf-8

python的編碼格式?
#coding=utf-8
這是文檔編碼
import sys
sys.setdefaultencoding("utf-8")
這是設置默認編碼方式為utf-8
xx.encode("utf-8")
這是字元串編碼操作
import codecs
codecs.open(xx,'r','utf-8"),這是文件編碼讀取方式

⑺ Python 讀寫文件的編碼與解碼問題

演示文件為docx文檔,內容如下:

源碼

運行源碼查看報錯信息
UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 15: illegal multibyte sequence

上述錯誤是一種很常見的解碼錯誤,下面介紹該錯誤的解決方法

把utf-8,gbk等各種編碼方式都試了一遍,還是沒有解決問題然後仔細看報錯信息,根據UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfb in position 14: invalid start byte,猜測文件中某個位元組不能解碼,打開文件一看,並沒有看出什麼問題來

open() 函數的第三個參數不是用來野唯接收編碼方式的,而磨脊信是傳入一個buffering的值,此處傳入了'gbk'字元串,所以系統提示傳一個瞎輪整型


通過調用office的API進行操作,因為在office上能完成的操作,都能通過win32完成,所以我們選擇使用win32
(Python3.5 需要安裝 win32compat,裡面含了 win32 的很多包)

⑻ 如何設置python的編碼格式為utf-8

重裝了系統(ubuntu 14.04)原來正常可用的OpenERP項目在切換到開發者模式的時候報錯:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)
而在伺服器上的項目正常可用,其原因是由於python的默認編碼設置為ascii,可以用以下命令查看:
import sys
sys.getdefaultencoding()
解決方案有兩種:
1. 在項目啟動文件中添加設置字元為utf8:
import sys
reload(sys)
sys.setdefaultencoding('utf8')
2. 在python的lib文件夾下的sitecustomize.py文件中添加代碼:(我的文件位於/usr/lib/python2.7)
import sys
reload(sys)
sys.setdefaultencoding('utf8')
try:
import apport_python_hook
except ImportError:
pass
else:
apport_python_hook.install()
relaod(sys)一句是必須的

熱點內容
串的c語言 發布:2025-02-06 20:25:44 瀏覽:745
編程函數總結 發布:2025-02-06 20:09:11 瀏覽:314
編程obj 發布:2025-02-06 19:59:52 瀏覽:844
津貼腳本 發布:2025-02-06 19:44:10 瀏覽:741
好分數里如何修改密碼 發布:2025-02-06 19:42:30 瀏覽:157
mysql存儲過程判斷 發布:2025-02-06 19:40:15 瀏覽:855
bat編譯器的作用 發布:2025-02-06 19:26:54 瀏覽:344
phpajaxsession 發布:2025-02-06 19:20:56 瀏覽:625
西安java學習 發布:2025-02-06 19:15:44 瀏覽:625
微信電影源碼網站 發布:2025-02-06 18:55:21 瀏覽:936