我一直在使用 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/