我试图创建一个小脚本来复制变量中部分unicode名称的文件,但我无法使其工作。在
代码如下:
fileextension = filename.split(".")[len(filename.split(".")) - 1]
if not os.path.exists(artistdir + "\\" + songname + "." + fileextension):
print basedir + filename, artistdir + "\\" + songname + "." + fileextension
shutil.copy(basedir + filename, artistdir + "\\" + songname + "." + fileextension)
我得到以下回报:
^{pr2}$第一行显示复制失败的文件的目标和源路径(返回print语句)。在
提前谢谢。在
您应该将Unicode字符串传递给
shutil.copy()
。不要混合使用bytestrings和Unicode字符串。在所有变量(
filename
,artistdir
,songname
,fileextension
,basedir
)在这里应该是Unicode字符串(assert isinstance(s, unicode)
)。在在不同的地方散布
.decode('utf-8')
代码很容易出错。请改用Unicode sandwich:尝试将其更改为:
注意它的“decode”而不是“encode”(您可能已经尝试过encode,但对已经使用utf8的字符串进行编码是没有意义的)
相关问题 更多 >
编程相关推荐