如何将Python变量发送到shell命令?

时间:2016-08-17 23:37:19

标签: python bash shell

我正在尝试将我的Python代码中的变量发送到Ubuntu中的shell命令。谁能帮助我如何做到这一点?目前,我有

import os
s=5
command = os.popen('stress -c 5 -i 1 -m 1 --vm-bytes 128M -t s')

我想将s变量发送到此命令,而不是直接说出超时的时间。

3 个答案:

答案 0 :(得分:4)

使用标准子流程模块:

import subprocess
s = 5
cmd = ['stress', '-c', '5', '-i', '1', '-m', '1',
      '--vm-bytes', '128M', '-t', str(s)]
subprocess.call(cmd)

使用子进程模块,允许每个参数单独且明确地传递。您只需将它们转换为字符串。

答案 1 :(得分:0)

我假设您的命令字符串中的's'是您想要假设变量's'的值?您需要做的就是:

command = os.popen('stress -c 5 -i 1 -m 1 --vm-bytes 128M -t ' + str(s))

如果我误读了你并试图替换5,它基本上是相同的

command = os.popen('stress -c ' + str(s) + ' -i 1 -m 1 --vm-bytes 128M -t s')

答案 2 :(得分:-2)

这是一个字符串替换操作,您可以获取所有信息here

或者您可以将字符串连接在一起。 (good tutorial