2017-08-11 2 views
1

Der folgende Code druckt den Text wie folgt aus:Drucken von Text aus Textdateien in einer Zeile

John 
    Smith 
    02/07/1234 

Zum einen rückt er zwei der Linien, wie würde ich den Code ändern drucken es als: John Smith 02/07/1234 auf einer Linie?

with open("Forename") as f1, open("Surname") as f2, open("Date of birth") as f3: 
    for forename, surname, birthdate in zip(f1,f2,f3): 
     print (forename, surname, birthdate) 

Antwort

3

try:

with open("Forename") as f1, open("Surname") as f2, open("Date of birth") as f3: 
    for forename, surname, birthdate in zip(f1,f2,f3): 
     print("{} {} {}".format(forename.strip(' \t\n\r'), surname.strip(' \t\n\r'), birthdate.strip(' \t\n\r'))) 

die .strip ('\ t \ n \ r') entfernt führende und Tabulatoren und kehrt Flächen, die .format() Formate Zeichenfolge nachlauf schön steuerbar zu drucken.

+1

Wenn Sie Streifen() verwenden, ohne Argumente, dann alle Leerzeichen Zeichen trimmt, so ruft z.B. Vorname.Strip() würde ausreichen. – Arminius

+0

Fügen Sie auch einige Leerzeichen zur Zeichenfolge selbst zwischen den Klammern hinzu :) – droravr

2

Verwenden Sie .join und entfernen Sie die Leerzeichen von jedem Namen.

with open("Forename") as f1, open("Surname") as f2, open("Date of birth") as f3: 
    for forename, surname, birthdate in zip(f1,f2,f3): 
     print(' '.join([forename.strip(), surname.strip(), birthdate.strip()])) 
1

Wie Ihre Fragen Python nicht explizit angeben, können Sie wollen wissen, dass Sie überhaupt Programm nicht benötigen, wenn Sie auf einem unixoide System (BSD, Linux, Mac OS X) sind: nur die Verwendung paste Shell-Befehl:

paste -d ";" forename surname birthday 

John;Smith;02/07/1234 

ergeben, wenn Sie nicht die -d Flagge Sie angeben, wird ein Register verwendet werden, um die Einträge zu trennen. Sie können mehr über paste erfahren hier: https://en.wikipedia.org/wiki/Paste_(Unix)

0
with open("Forename") as f1, open("Surname") as f2, open("Date of birth") as f3: 
    for forename, surname, birthdate in zip(f1,f2,f3): 
     print (forename, surname, birthdate, end=' ') 
Verwandte Themen