gpt4 book ai didi

python-3.x - Popen 的上下文管理器

转载 作者:行者123 更新时间:2023-12-01 02:32:57 25 4
gpt4 key购买 nike

我对 Python 非常陌生。我在 Context Manager 上尝试了一个解决方案,如下所示:
问题陈述:
定义一个函数 run_process ,它接受系统命令,在后台运行命令并返回结果

我试过的解决方案:

def run_process:
with subprocess.Popen(cmd_args) as proc:
proc.communicate()

if __name__ == "__main__":
f = open(os.environ['OUTPUT_PATH'], 'w')

cmd_args_cnt = 0
cmd_args_cnt = int(input())
cmd_args_i = 0
cmd_args = []
while cmd_args_i < cmd_args_cnt:
try:
cmd_args_item = str(input())
except:
cmd_args_item = None
cmd_args.append(cmd_args_item)
cmd_args_i += 1

res = run_process(cmd_args);

if 'with' in inspect.getsource(run_process):
f.write("'with' used in 'run_process' function definition.\n")

if 'Popen' in inspect.getsource(run_process):
f.write("'Popen' used in 'run_process' function definition.\n")
f.write('Process Output : %s\n' % (res.decode("utf-8")))

f.close()

预期输入:
3
Python
-C
打印(“你好”)

预期输出:
'run_process' 函数定义中使用的 'with'。
'run_process' 函数定义中使用的 'Popen'。
过程输出:你好

最佳答案

def run_process(cmd_args):
with subprocess.Popen(cmd_args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) as p:
out, err = p.communicate()
return out

关于python-3.x - Popen 的上下文管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51876672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com