Подпроцесс Python, общаться без отправки - PullRequest
0 голосов
/ 20 ноября 2018

Привет! Я хочу смоделировать ожидание программы Linux, когда программа запрашивает у меня, например, логин, я хочу отправить эти данные на консоль.

Когда мне нужно поместить данные в следующую строку, все работает, нокогда программа ожидает ввода в той же строке, где находится сообщение, я не могу прочитать это, программа зависла и ничего не могу сделать.

Могу ли я использовать subprocess.communicate () без текста для отправки в скобках или принять решение?когда и что следует отправлять?

Моя программа (работает только в том случае, если программа ожидает ввода в новой строке):

from subprocess import Popen, PIPE
from time import sleep

p = Popen(["java", "testing"],
        stdin = PIPE, stdout = PIPE, stderr = PIPE, shell = True)
while True:
    output = p.stdout.readline()
    print output
    if "Hello, give me data:" == output.strip():
        p.stdin.write('Your data\n')
    if "OUT" == output:
        p.stdin.write('EXITmmand\n')
        sleep(0.1)
    if not output:
        break
    sleep(2)

Тестирование программы в Java [когда я удаляю ln inSystem.out.println («Здравствуйте, дайте мне данные:»);это не работает]:

import java.util.Scanner;
public class testing{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        String string = "";
        System.out.println("Hello, give me data:");
        text = s.nextLine();
        System.out.println(text);
        System.out.println("Goodbye");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...