Pass Integer-Eingabeargument für Popen.communicate ()

Ich bin ziemlich neu in Python und ich bin jetzt mit etwas stecken. Ich benutze Python 2.7. Ich versuche, einen Befehl in der Shell zu automatisieren, für den ich ein Python-Skript geschrieben habe. Ich muss einen ganzzahligen Wert in die Shell eingeben, für die ich Popen.communicate verwende (input = '2'). Obwohl die Eingabe übergeben wird, wird sie als Zeichenfolge übergeben und der Unterprozess benötigt sie als numerischen Wert. Wenn ich versuche, es als numerischen Wert wie Popen.communicate (Eingabe = 2) zu übergeben, wird der folgende Fehler ausgegeben:

TypeError: 'int' Objekt hat kein Attribut '__ getitem __'

So gibt es eine Möglichkeit, die Eingabe als numerischen Wert zu senden ??

Hier ist der Code, den ich benutze:

import sys
from subprocess import Popen, PIPE, STDOUT

cmd = ["sudo", "./sbt", "project java-examples", "run"]
proc = Popen(cmd, bufsize=4096, shell=False, stdout=PIPE, stdin=PIPE, stderr=STDOUT)

string = proc.communicate(input='2')
print string[0]
proc.stdin.close()

Edit: Sorry, dass ich das überhaupt nicht erwähnt habe. Meine Java-Anwendung hat mehrere Hauptklassen, daher fragt der Compiler, welche Klasse ausgeführt werden soll, und ich muss jedes Mal dieselbe Nummer eingeben, weshalb ich versuche, sie zu automatisieren. Wenn ich einen Zeichenfolgenwert übergebe, wird eine numberformatexception ausgelöst.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage