我一直在使用 python 脚本打开一个带有 unicode 名称(主要是日语)的文件,并在 64 位 Windows Vista 中保存为随机生成的(非 unicode)文件名,但我遇到了问题......它只是不起作用,它适用于非 unicode 文件名(即使它具有 unicode 内容),但是第二次您尝试传入 unicode 文件名 - 它不起作用。

这是代码:

try:
    import sys, os
    inpath = sys.argv[1]
    outpath = sys.argv[2]
    filein = open(inpath, "rb")
    contents = filein.read()
    fileSave = open(outpath, "wb")
    fileSave.write(contents)
    fileSave.close()

    testfile = open(outpath + '.test', 'wb')
    testfile.write(inpath)
    testfile.close()

except:
    errlog = open('G:\\log.txt', 'w')
    errlog.write(str(sys.exc_info()))
    errlog.close()

和错误:
(<type 'exceptions.IOError'>, IOError(2, 'No such file or directory'), <traceback object at 0x01092A30>)

最佳答案

您必须将 inpath 转换为 unicode,如下所示:

inpath = sys.argv[1]
inpath = inpath.decode("UTF-8")
filein = open(inpath, "rb")

我猜你使用的是 Python 2.6,因为在 Python 3 中,默认情况下所有字符串都是 unicode,所以这个问题不会发生。

关于Python不打开日语文件名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3089700/

10-12 18:02