В моем каталоге проектов есть 3 файла ниже.неожиданный результат при общении с stdin другого процесса
rndbet/rndbet.py
while True:
s = input()
if s == "exit":
exit()
else:
print("I'm rndbet: " + s)
rndbet/старт
python3 rndbet.py
mjhd.java
Когда я типа bash -c "cd rndbet&&./start"
непосредственно из командной строки, ниже.
$ bash -c "cd rndbet&&./start"
hi
I'm rndbet: hi
exit
Но работа программы java ведет себя по-разному.
$ java mjhd
hi
<- rndbet: I'm rndbet: hi
exit
<- rndbet: I'm rndbet: exit
exit
<- rndbet: I'm rndbet: exit
Так что теперь скрипт Python не правильно получить команду exit
. Пожалуйста, помогите мне исправить эту проблему.
Я только что нашел проблему, когда сценарий Python запускается с помощью Java, дополнительный характер значения ASCII 13 всегда добавляется в конце отправленного текста. Что такое возможное исправление?
Проблема заключается как в «PrintStream», так и в анонимном потоке, и поэтому выход испорчен. почему вы не помещаете свой «PrintStream» в анонимный «поток» и распечатываете строки? – haifzhan
@haifzhan 'PrintStream' не печатает ничего в моем коде; он скорее «посылает». – xiver77