我在python中使用unicode遇到了一些麻烦,所以我编写了这个程序,我对结果感到困惑。每当我运行它时,不同的字符给我错误#2,这意味着当我尝试将unicode字符写入我的测试文件时,utf32,utf16和utf8都会出错。从来没有相同的。这是我的程序的问题,还是我做的事情python不是为了处理?
for a in range(65535):
try:
open('test_text.txt','w').write(unichr(a).encode("utf32"))
if len(open('test_text.txt','r').read()) == 0:
print unichr(a) + ' Error #1 #' + str(a)
except IOError:
try:
open('test_text.txt','w').write(unichr(a).encode("utf16"))
except IOError:
try:
open('test_text.txt','w').write(unichr(a).encode("utf8"))
except IOError:
print unichr(a) + ' Error #2 #' + str(a)
except UnicodeEncodeError:
print unichr(a) + ' Error #3 #' + str(a)
raw_input('\n\nEnter char to end:')
答案 0 :(得分:1)
我尝试时,您的代码没有出现任何错误。此外,您每次循环都会覆盖文件。您可以尝试将模式更改为“a”而不是“w”以附加到文件。或者您可以简单地执行以下操作:
f = open('test_text.txt','wb')
for a in range(65535):
f.write(unichr(a).encode("utf32"))
f.close()
这里有关于在python中读取/写入文件的更多信息: http://docs.python.org/2/tutorial/inputoutput.html