Python:子流程调用():为什么我需要shell参数是变量?

2024-06-01 14:29:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我读到了操作系统()应替换为子流程调用(),所以我试着用它。 我正在用

parallelrun = os.environ['PARALLEL_RUN']
aims = os.environ['AIMS_COMMAND']

然后想用

with open(outfile, 'w') as f:
    subprocess.call([parallelrun, aims], stdout=f)

我没有保存错误消息,但它似乎在子进程模块的某个地方失败了。我认为用shell=True运行它是可行的,但是会使脚本更容易受到攻击。 我不明白为什么在同一个脚本中指定的变量在没有shell的情况下不能扩展。有什么想法吗?你知道吗


Tags: run脚本parallelosaswithenviron流程