2010-06-23 65 views
-2
file = open('unicode.txt', 'wb') 

    for i in range(10): 
     file.write(str(unichr(i))) 

我想要做的是所有的Unicode值打印到一個文本文件的Python:打印Unicode到文件

+3

這裏有什麼問題? – Wilduck 2010-06-23 19:48:40

+1

你忘了'wb'上的'b'嗎?這是個問題嗎?如果是這樣,請修改爲(1)正確格式化代碼,(2)實際詢問實際問題,以便我們知道您實際上遇到了什麼問題。 – 2010-06-23 20:03:59

+1

「Unicode值」?你的意思是「字符」還是「字節」?一個unicode字符需要一個或多個字節,具體取決於編碼。你想用這個文件做什麼? – 2010-06-23 20:39:01

回答

-1

你不應該需要str()待命unichr(i)。 Python unicode對象是可打印的。

此:

file = open('unicode.txt', 'wb') 
for i in range(10): 
    file.write(unichr(i)) 

似乎爲我工作,它打印爲0x0000,爲0x0001,爲0x0002,等文本文件。

+1

-1'str()'既不需要也不需要。 「Python unicode對象是可打印的」 - 有時,取決於哪些對象,什麼平臺,窄/寬unicode Python構建,默認編碼,可用字體,Python 2.x或3 .x,月相等等。在我的設置中,你的代碼會生成一個10字節的文件,其中包含''x00 x01 x02 x03 x04 x05 x06 x07 x08 t'...如果我= 128,我的結果是'UnicodeEncodeError:'ascii'編解碼器無法編碼字符u'\ x80'在位置0:序號不在範圍(128)' – 2010-06-23 22:41:35

2
somefile = codecs.open('unicode.txt', 'wb', someencoding) 

for i in range(10): 
    somefile.write(unichr(i))