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,但我搞不清楚怎么回事。任何帮助都会很感激,谢谢。
1 个回答
3
这段话的意思是,os.system
默认是在一个子进程中执行命令,而 subprocess.call
则不是。如果你想让 subprocess.call
也在子进程中执行,可以试试加上 shell=True
。