Ho passato un eseguibile sulla riga di comando al mio script python. Faccio alcuni calcoli e poi mi piacerebbe inviare il risultato di questi calcoli su STDIN all'eseguibile. Al termine, vorrei ottenere il risultato dell'eseguibile da STDOUT.Popolo Python che invia a elaborare su stdin, ricevendo su stdout
ciphertext = str(hex(C1))
exe = popen([sys.argv[1]], stdout=PIPE, stdin=PIPE)
result = exe.communicate(input=ciphertext)[0]
print(result)
Quando stampo result
non ottengo niente, non è None, una riga vuota. Sono sicuro che l'eseguibile funziona con i dati poiché ho ripetuto la stessa cosa usando '>' sulla riga di comando con lo stesso risultato calcolato in precedenza.
Sei sicuro che hai provato che l'eseguibile funziona anche senza una nuova riga alla fine dell'input? ("echo" aggiungerà una nuova riga, "echo -n" non lo farà.) – svk
@svk sì, funziona anche con newline –