python-subprocess.call与os.system有何不同

我有一个python脚本可以为我安装/卸载一些常用的程序,并且在卸载后还可以进行一些快捷方式/文件夹清理.我曾经使用此代码删除文件夹

os.system('rd /S /Q "{0}\\{1}"'.format(dirname, name))

效果很好.我试图将os.system的用法转换为subprocess.call,所以我将上面的行更改为此

subprocess.call(['rd', '/S', '/Q', '{0}\\{1}'.format(dirname, name)])

但这给出了错误

The system cannot find the file specified (2)

我必须使用了不正确的subprocess.call,但无法解决.任何帮助,将不胜感激,谢谢.

解决方法:

不同之处在于,默认情况下,子外壳中执行os.system,而subprocess.call则不.尝试使用shell = True.

上一篇:绘制更Smooth的UI


下一篇:不能使用popen启动两个交互式shell