1

我在 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:')
4

1 回答 1

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

于 2013-07-21T02:05:07.083 回答