2016-10-01 5 views
0

In meinem Code gibt es keine \n, aber wenn ich alle meine Variablen ausdrucke, erstellt es eine neue Zeile, was bedeutet, dass meine letzte Variable in einer anderen Zeile gedruckt wird.nein " n" aber neue Zeile wird gemacht?

mein Code:

with open("read_it.txt", "r") as text_file: 
    for items in text_file: 
     line = items.split(",") 
     if GTIN in items: 
      product = line[1] 
      indprice = line[2] 
      finprice = float(indprice)* float(Quantity) 
      print(GTIN,product,Quantity,"£",indprice,"£",finprice) 

Stromausgang (falsch):

086947367 banana 2 £ 0.50 
£ 1.0 

Ich möchte:

86947367 banana 2 £ 0.50 £ 1.0 

jede Hilfe dankbar.

+0

Könnte Ihr Terminal die Linie werden Verpackung? – HSchmale

+9

Die Zeilen in einer Datei ** do ** enthalten '\ n' und Python tut ** nicht ** strip das letzte' \ n' noch 'split (',')' entfernt alles außer dem Trennzeichen, daher 'indprice 'enthält am Ende einen Zeilenumbruch. – Bakuriu

+4

Nur um zu überprüfen, könnten Sie 'drucken (repr (indprice))'. Sie sehen den Zeilenumbruch. – tdelaney

Antwort

2

Wenn Sie readline für ein Dateiobjekt aufrufen (was Sie implizit in Ihrer for-Schleife tun), hinterlässt es die nachgestellten Zeichen '\ n' und/oder '\ r'. In diesem Fall enthält Ihre Indprice-Variable immer noch das nachgestellte '\ n'.

Versuchen:

line = items.strip('\r\n').split(',') 

Oder, wenn es eine kleine Textdatei, die Sie vollständig in den Speicher ziehen kann:

for items in text_file.read().split('\n'): 
+0

super danke. –

Verwandte Themen