Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在命令输出中设置变量_Python_Bash_Variables_Output - Fatal编程技术网

Python 在命令输出中设置变量

Python 在命令输出中设置变量,python,bash,variables,output,Python,Bash,Variables,Output,我想知道如何在另一个命令的输出中使用变量。例如,如果我尝试使用“openssl”生成一些密钥,我将得到关于国家、州、组织等的问题 我想在脚本中使用我的变量来填充这些信息。我将使用变量“Country”;变量“State”等,并在执行时从openssl命令中解析/设置 我正在bash中尝试这一点,但也想知道如何在python中实现同样的想法 亲切问候你有多种方法可以做到这一点。 1.如果在python脚本之前启动了脚本,并且结果集位于环境变量中,则可以按如下方式从python脚本中读取环境变量:

我想知道如何在另一个命令的输出中使用变量。例如,如果我尝试使用“openssl”生成一些密钥,我将得到关于国家、州、组织等的问题

我想在脚本中使用我的变量来填充这些信息。我将使用变量“Country”;变量“State”等,并在执行时从openssl命令中解析/设置

我正在bash中尝试这一点,但也想知道如何在python中实现同样的想法


亲切问候

你有多种方法可以做到这一点。 1.如果在python脚本之前启动了脚本,并且结果集位于环境变量中,则可以按如下方式从python脚本中读取环境变量:

import os 
os.environ.get('MYVARIABLE', 'Default val')
否则,您可以尝试从python脚本启动另一个应用程序,并使用os.popen()读取结果:

或者更好(如果您有比2.6更新的python)


那Bash呢?另外,另一个命令是openssl,我想要实现的是使用脚本中的变量来填充openssl向我提出的问题,该脚本正在使用opensslok。。。那么,您想要打开一个交互式shell。看看这个:还有这个:我找到了一些openssl的解决方案。有一个人openssl可以填写所需的问题。但主要的问题是如何与一些shell交互,这些shell显示需要用户输入的问题。我想用脚本中的一些变量自动填充这些问题。与ssh-keygen命令相同,当您收到问题提示时,用户需要填写这些问题。存储密钥、密码、名称等的路径。
import os
tmp = os.popen("ls").read()
import subprocess
proc = subprocess.Popen('ls', stdout=subprocess.PIPE)
tmp = proc.stdout.read()