2009-05-19 18 views
2
 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, 

Quand je l'utiliser pour rediriger la sortie d'un exe à mon dossier propre, il a toujoursComment supprimer le retour chariot en python 2?

un retour chariot après chaque ligne, Comment la supprimer?

Répondre

2

Voici comment j'enlevé le retour chariot:

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

Salut, le 'line.strip()' n'est pas nécessaire pour enlever '\ n', car les lignes scindées font déjà le travail: ''one \ ntwo \ nthree'.splitlines() -> [' one ', 'deux', 'trois'] ' –

+1

True. Mais considérons également que strip() supprime également les caractères d'espace blanc de début ou de fin tels que l'espace. Cela dit, vous pouvez ou non vouloir cela en fonction de votre cas d'utilisation. –

1
def Popenstrip(self): 
    p = Popen([vmrun_cmd, list_arg], stdout=PIPE).communicate()[0] 
    return (line for line in p.splitlines() if line.strip()) 
0
print line.rstrip('\r\n') 

fera très bien.

Questions connexes