我想创建一个小的脚本复制文件的变量中的部分unicode名称,但我无法让它工作。Python复制文件与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)
我得到以下回报:
E:\music\_collections\Adrian von Ziegler\2012 Starchaser\01. Adrian von Ziegler - Nidh├Âggr.mp3 C:\Temp\Adrian von Ziegler\Nidh├Âggr.mp3
Traceback (most recent call last):
File "E:\main\Coding\Python\WinampPlaylistExport\winampplaylistexport.py", line 72, in <module>
iteratePlaylists()
File "E:\main\Coding\Python\WinampPlaylistExport\winampplaylistexport.py", line 20, in iteratePlaylists
iteratePlaylist(playlist.get("title"), playlist.get("filename"))
File "E:\main\Coding\Python\WinampPlaylistExport\winampplaylistexport.py", line 69, in iteratePlaylist
shutil.copy(basedir + filename, artistdir + "\\" + songname + "." + fileextension)
File "C:\Python27\lib\shutil.py", line 119, in copy
copyfile(src, dst)
File "C:\Python27\lib\shutil.py", line 82, in copyfile
with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: 'E:\\music\\_collections\\Adrian von Ziegler\\2012 Starchaser\\01. Adrian von Ziegler - Nidh\xc3\xb6ggr.mp3'
,第一行显示的目标,并在这里拷贝失败的文件的源路径(返回打印声明)。
在此先感谢。
可能的重复:http://stackoverflow.com/questions/4173477/copying-files-with-unicode-names? – amito
我已经尝试了很多答案,例如使用.encode(“utf-8”)和前缀u“”+到路径字符串,但是抛出了以下错误:UnicodeDecodeError:'ascii'编解码器无法解码字节0xc3位置84:序号不在范围内(128) –
2更多建议:如果可能,请将变量定义为“unicode”(字符序列)对象而不是“字符串”(字节序列)。然后连接将会正常工作。连接路径组件的传统方式是使用'os.path.join(...)'。 – roeland