[英]Python subprocess only giving 1 output instead of 2
我想使用openssl和python子key.pem
生成2个证书,它们是key.pem
和cert.pem
并且正在使用以下命令来这样做。
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
从终端执行此命令时效果很好,但是在python子进程的帮助下从python脚本执行该命令时,该命令仅将key.pem
文件输出到所需目录中,而不提供cert.pem
文件。 以下是python脚本的代码段:
tempdirname = 'temp_cert/'
keyname = 'key.pem'
certname = 'cert.pem'
expiration_period = '500'
cmd = ['openssl', 'req', '-newkey', 'rsa:2048', '-nodes', '-keyout', tempdirname+keyname, '-x509', '-days', expiration_period, '-out', tempdirname+certname]
p = subprocess.Popen(
cmd,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
shell=False
)
out, err = p.communicate('\n')
我还希望cert.pem
文件是同一目录。 我该怎么办? 我正在使用python 2.7
使用以下方法解决了问题:
p = subprocess.Popen(
cmd,
stdin=subprocess.PIPE,
shell=False
)
#taking input like this
p.stdin.write("n")
out, err = p.communicate('\n')
删除了以下几行,它开始工作:
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.