Przepuszczam plik wykonywalny w linii poleceń do mojego skryptu Pythona. Wykonuję obliczenia, a następnie chciałbym wysłać wynik tych obliczeń na STDIN do pliku wykonywalnego. Kiedy to się skończy, chciałbym odzyskać wynik pliku wykonywalnego z STDOUT.Python Popen wysyła do przetworzenia na stdin, odbierając na stdout
ciphertext = str(hex(C1))
exe = popen([sys.argv[1]], stdout=PIPE, stdin=PIPE)
result = exe.communicate(input=ciphertext)[0]
print(result)
Po wydrukowaniu result
nic nie dostaję, a nie Brak, pusta linia. Jestem pewien, że plik wykonywalny działa z danymi, ponieważ powtórzyłem to samo, używając ">" w wierszu polecenia z tym samym uprzednio obliczonym wynikiem.
Czy jesteś pewien, że testowałem że wykonywalny działa nawet bez nowej linii na koniec wejścia? ("echo" doda znak nowej linii, "echo -n" nie będzie.) – svk
@svk yep, działa również z nową linią –