【问题标题】:Passing variables to a subprocess in python将变量传递给python中的子进程
【发布时间】:2021-06-13 14:16:40
【问题描述】:

我不知道这是否是正确的形式

num=8
num2=10
num=subprocess.check_output("num/2", shell=True)
num2=subprocess.check_output("num2+7", shell=True)

【问题讨论】:

  • Bash 无法访问您的 python 变量,尝试类似subprocess.check_output("{}/2".format(num), shell=True)

标签: python linux bash shell subprocess


【解决方案1】:

'num/2' 只是字符串“num/2”。如果您希望它成为变量 num,则需要对其进行插值,例如,使用 f 字符串 f'{num}/2'

此外,如果您尝试使用 bash 进行除法,则必须添加双括号以进行算术扩展:

>>> num = 8
>>> subprocess.check_output(f'echo $(( {num}/2 ))', shell=True)
b'4\n'

Python 首先将{num} 插入8,然后将echo $(( 8/2 )) 发送到shell。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    • 2011-06-15
    • 2021-08-12
    相关资源
    最近更新 更多