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 Pythonprint ",".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 |