Ich muss eine externe Binärdatei aus meinem Scala-Code ausführen und seine Ausgabe erhalten. Der übliche Weg, dies zu tun, scheint scala.sys.process zu verwenden. Der folgende Code meist funktioniert:Wie vermeidet man eine zusätzliche abschließende Zeilenumbruch bei der Verwendung von Scala sys.process Shell
import scala.sys.process._
val command = Seq("python3", "-c", "print('foo', end='')")
val result = command.!!
aber es scheint, wie es ein extra Newline ist:
print(result.length) // prints 4 instead of 3
print(result) // prints an extra newline at the end
Ich kann nur das Ergebnis Zeichenfolge ändern das letzte Zeichen zu entfernen, aber es scheint seltsam, dass sys.process fügt der Ausgabe einen abschließenden Zeilenumbruch hinzu, also dachte ich, es könnte entweder ein Fehler sein mit dem was ich mache oder etwas, das konfiguriert werden kann.
Soll der abschließende Zeilenumbruch da sein?
Gibt es eine Möglichkeit, es loszuwerden, ohne die Ausgabezeichenfolge zu manipulieren?
ich ein '.trim' tun vermeiden wollen, weil die reale binäre können beliebige Zeichenketten ausgegeben, die möglicherweise am Ende mit Leerzeichen, und ich möchte genau beibehalten, was es ausgibt. –