在python中执行带有(';)字符的命令时出现问题

在python中执行带有(';)字符的命令时出现问题,python,Python,我正在做一个从音乐播放列表中复制一些文件的程序。我像这样执行命令: command = 'cp "%s" "%s"' % (songPath,plPath) os.system(command) 问题是,当我执行时,如果歌曲的路径有,则无法执行字符命令。它说: cp:无法统计“/home/myname/Music/Oasis/(故事是什么)牵牛花/03 Wonderwall.mp3”:没有这样的文件或目录 我检查了歌曲路径,在之前没有\字符。 有人知道如何避免程序添加该\字符吗 提前谢谢你

我正在做一个从音乐播放列表中复制一些文件的程序。我像这样执行命令:

command =   'cp "%s" "%s"' % (songPath,plPath)
os.system(command)
问题是,当我执行时,如果歌曲的路径有,则无法执行字符命令。它说:

cp:无法统计“/home/myname/Music/Oasis/(故事是什么)牵牛花/03 Wonderwall.mp3”:没有这样的文件或目录

我检查了歌曲路径,在之前没有\字符。 有人知道如何避免程序添加该\字符吗


提前谢谢你

使用
子流程。调用

ret_val = subprocess.call(['cp',songPath,plPath])

这避免了shell,因此参数应以您给定的确切形式传递给
cp

使用
子流程。调用

ret_val = subprocess.call(['cp',songPath,plPath])

这避免了shell,因此您的参数应该按照您给定的格式传递
cp

如何获得
songPath
plPath
?为什么要通过
system
使用
cp
,而不是使用Python的库来复制它@loganfsmyth——这是一个非常好的问题。我不知道那个选项!这解决了我的问题,非常感谢@loganfsmyth我认为你应该接受@mgilson的答案,因为这是你所问问题的答案,即使有更好的方法。如何获得
songPath
plPath
?为什么要通过
system
使用
cp
而不是使用Python的库来复制它@loganfsmyth——这是一个非常好的问题。我不知道那个选项!它解决了我的问题,非常感谢@loganfsmyth我认为你应该接受@mgilson的答案,尽管这是你所问问题的答案,即使有更好的方法。subprocess.call也有同样的问题,但是shutil.copy2(songPath,plPath)解决了这个问题(感谢@loganfsmyth)我对subprocess.call也有同样的问题,但是shutil.copy2(songPath,plPath)解决了这个问题(感谢@loganfsmyth)