2 Stimmen

Wie kann man den Wagenrücklauf in Python 2 unterdrücken?

        myfile = open("wrsu"+str(i)+'_'+str(j)+'_'+str(TimesToExec)+".txt",'w')
        sys.stdout = myfile
        p1 = subprocess.Popen([pathname,"r", "s","u",str(i),str(j),str(runTime)],stdout=subprocess.PIPE)
        output = p1.communicate()[0]
        print output,

Wenn ich dies verwende, um die Ausgabe einer Exe in meine eigene Datei umzuleiten, wird immer

ein Wagenrücklauf nach jeder Zeile, Wie kann man ihn unterdrücken?

2voto

Rob Carr Punkte 250

So habe ich den Wagenrücklauf entfernt:

 p = Popen([vmrun_cmd, list_arg], stdout=PIPE).communicate()[0]
 for line in p.splitlines():
 if line.strip():
     print line

0 Stimmen

Hallo, der line.strip() ist es nicht erforderlich, die ' \n da Split Lines diese Aufgabe bereits erfüllt: 'one\ntwo\nthree'.splitlines() --> ['one', 'two', 'three']

1 Stimmen

Das stimmt. Aber bedenken Sie auch, dass strip() auch führende oder nachfolgende Leerzeichen wie Leerzeichen entfernt. Das heißt, je nach Anwendungsfall können Sie das wollen oder auch nicht.

1voto

odwl Punkte 2065
def Popenstrip(self):
  p = Popen([vmrun_cmd, list_arg], stdout=PIPE).communicate()[0]
  return (line for line in p.splitlines() if line.strip())

0voto

xiaolong Punkte 3026
print line.rstrip('\r\n') 

wird gut funktionieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X