最近用到了python的subprocess模块,看到官方声明里说要尽力避免使用shell=True这个参数,于是测试了一下:
from subprocess import call
import shlex
cmd = "cat test.txt; rm test.txt"
call(cmd, shell=True)
运行之后:
1:打开并浏览了test.txt文件
2:删除了test.txt文件
from subprocess import call
import shlex
cmd = "cat test.txt; rm test.txt"
cmd = shlex(cmd)
call(cmd, shell=False)
运行之后:
1:尝试打开名为text.txt;的文件
2:尝试打开名为r