我正在尝试将我的Python代码中的变量发送到Ubuntu中的shell命令。谁能帮助我如何做到这一点?目前,我有
import os
s=5
command = os.popen('stress -c 5 -i 1 -m 1 --vm-bytes 128M -t s')
我想将s
变量发送到此命令,而不是直接说出超时的时间。
答案 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)