gpt4 book ai didi

Python子进程,给子进程一个输入

转载 作者:行者123 更新时间:2023-12-04 19:20:44 25 4
gpt4 key购买 nike

我制作了一个检查 key 的程序。和另一个应该找到 key 的程序。我设法在第二个程序中打开了一个子进程,但无法向它发送输入。这是检查 key 的程序,secret_key.py :

SECRET_KEY = "hi"
current_key = 0

while not current_key == "exit":
wrong_key = False
current_key = raw_input("Enter the key or enter 'exit' to exit.\n")

for i in range(len(current_key)):
if i < len(SECRET_KEY):
if not current_key[i] == SECRET_KEY[i]:
wrong_key = True
else:
wrong_key = True

if not wrong_key:
print("the key is right!\n")
current_key = "exit"

raw_input("Press ENTER to exit\n")
exit()

现在我制作了一个 .sh 文件,以便能够在新终端中作为子进程运行它, program.sh :
#! /bin/bash

python Desktop/school/secret_key.py

这就是我卡住的地方, find_key.py :
import subprocess

program = subprocess.Popen("./program.sh")

现在我找不到发送 secret_key.py 的方法它要求的输入。

无论如何我可以将字符串输入发送到 secret_key.py来自 find_key.py ?

最佳答案

要向通过 Popen 打开的进程发送输入和读取输出,您可以使用进程'stdin 读取和写入进程。和 stdout字段。您确实需要告诉 Popen但是要设置管道:

process = subprocess.Popen([SPIM_BIN] + extra_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
pin = process.stdin
pout = process.stdout

现在你可以写信给 pin并从 pout 中读取就像使用任何旧文件描述符一样。

请注意,这可能不允许您连接到 gnome-terminal。 .但它将允许您连接到 program.sh .

关于Python子进程,给子进程一个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20210717/

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