【发布时间】:2020-06-03 11:53:35
【问题描述】:
我有一个 python 代码,我在其中使用子进程在函数中获取命令“which opatch”的输出,该函数将输出作为 getOpatch 的 unix 路径。完成后,如何关闭使用 Popen 打开的子进程。下面是我用来调用子进程的代码。提前致谢。
import os
import subprocess
os.environ["ORACLE_HOME"] = X
os.environ["PATH"] += os.pathsep + os.pathsep.join([X + "/OPatch"])
getOpatch = subprocess.Popen("which opatch", shell=True, stdout=subprocess.PIPE).stdout
op_path = getOpatch.read()
【问题讨论】:
-
问题是当我运行具有差异输入 ($PATH) 的不同函数 2 时,子进程变量 2 返回与函数 1 中相同的值
-
请澄清您的问题。子流程完成后自动关闭,无需手动关闭。您对
os.environ的更改是否仍然存在? -
os.environ 值在每次传递新值时都会发生变化,但 subprocess.Popen 在获取“which opatch”的输出时不会更改为最新的。
-
谢谢MisterMiyagi...我明白你的意思。将检查建议并回复您。
标签: python subprocess