標籤:

Python如何輸出包含在對象中的中文字元?

print [u"u7ef3u5b50", u"u5e26u5b50"][0] 可以正常輸出其中一部分中文

但是有沒有辦法直接輸出 ["繩子","帶子"]

那樣能極大的方便調試。

{PS :混蛋Stackoverflow說我問題不合格。。}

PS:抱歉讓大家誤以為問的是"如何輸出中文|如何在源碼中使用中文"。。問題問的是如何使對象的repr行為輸出直接為中文。而不是[u"u5e26u5b50"]這種不直觀的形式。


def zhprint(obj):

import re

print re.sub(r"\u([a-f0-9]{4})", lambda mg: unichr(int(mg.group(1), 16)), obj.__repr__())

yeah it"s a hack but it works (for most cases)...


(這幾天恰好碰到類似的問題……)

一個很取巧的方法是轉成 JSON 或者 YAML 輸出。

import json, yaml

print json.dumps(["繩子","帶子"], ensure_ascii=False, indent=2)

print yaml.dump(["繩子","帶子"], allow_unicode=True)


搬自stackoverflow:Print a list that contains Chinese characters in Python

print ",".join(["老虎","獅子"])


新學的話還是用python3吧~


可以安裝模塊uniout.


json.dumps(something).decode("unicode-escape")


1. 在 python2 裡面:

對於 obj = [u"u7ef3u5b50", u"u5e26u5b50"] 這種情況, 使用:

print(repr(obj).decode("unicode-escape"))

對於 obj = ["繩子","帶子"] 這種情況,使用:

print(repr(obj).decode("string-escape"))

2. 在 python3 應該不需要考慮這個了。


str(xx).decode("string_escape")


https://groups.google.com/forum/#!topic/python-cn/2IGzKDhs45Y 中有一個 pprint.py 的替代文件,支持中文的。平時用他就行了。


https://github.com/flayer2006/daily_Exercise/tree/master/csv%20file-write%20and%20read

題主可以參考下~~


我用的python3.4 print(r.text) 卻輸出了這樣的東西

求指導,怎樣輸出中文


沒什麼辦法吧,for print吧


最簡單的方法:

import sys
try:
reload(sys)
sys.setdefaultencoding("utf-8")
except:
pass

print sys.getdefaultencoding()

可以看到系統編碼變成utf-8,中文也可以顯示了。


python3 雙引號里的是unicode字元串,只要確保源代碼文件是用unicode保存的就可以在雙引號里直接用中文

python2 雙引號里的是ASCII編碼的字元串,unicode字元串用u"中文"來表示


如果想一次性輸出多個中文,而不出現Unicode字元,我只能想到循環

s=[u"繩子",u"帶子"]

for each in s:

print each,


decode()和encode()配合使用

假設機器語言編碼是gbk的,python內建存儲都是unicode

可以參考 http://dustin.iteye.com/blog/77565

所以可以嘗試

  • print vec[0].decode("utf8").encode("gbk")


推薦閱讀:

vim怎麼匹配多個相同字元並替換成字元加數字遞增的形式?
如何避免無意識裝B?
win8環境下python3.4怎麼樣配置才能把scrapy安裝成功?
Python中,if與elif有何區別?

TAG:Python |