2014-02-23 51 views
3

我在python脚本中搜索文件并存储文件。 问题是,在某些情况下,在内部有特殊字符(例如UTF-8 Table hex U + 00C4 U + 00D6 U + 00DC等) 当我使用“print”打印路径时,会显示正确。当我使用这个 字符串将它发送到os.system()时,特殊字符被转义出来,并且 得到一个UTF错误。Python:UTF-8德国特殊字符

ERRORMSG:

cp -nv /home/rainer/Arbeitsfläche/Videofiles/A047C001_130226_R1WV.mov /media/rainer/LinuxData 
Traceback (most recent call last): 
    File "Clipfinder.py", line 254, in <module> 
    copyProcess(sourcedir,destdir,cliplist) 
    File "Clipfinder.py", line 205, in copyProcess 
    os.system(copycmd) 
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 29: ordinal not in range(128) 

THX的帮助! 赖

copycmd = "cp -nv " + pathtoFile_src + " " + destdir 
print copycmd 
os.system(copycmd) 

回答

2

使用encode为Unicode转换为字节字符串:

os.system(copycmd.encode('utf-8')) 
+0

@rainer问题 – ndpu

+0

真棒添加错误的追踪! Thx的提示!它现在的工作......忘记了里面的旧命令,所以我再次得到错误......现在它很好! – rainer

+0

现在是处理空白字符。 cp正在切断那里的命令。 – rainer