2017-03-12 1 views
0

Hoffentlich macht der Titel Sinn, da ich nicht wirklich weiß, wie man das gut formuliert.Verwenden einer Formatzeichenfolge, die vom Benutzer übergeben wird, um Variablen mit Python auszugeben

Ich benutze Python und schreibe etwas, um durch iTunes seltsam formatierte Textdateien zu analysieren, die beim Exportieren von Wiedergabelistendaten gemacht werden. Ich habe Panda benutzt, um einen CSV zu lesen, und kann jede Spalte durchsehen, die iTunes gemacht hat. Als Referenz hier ist ein Beispiel dafür, wie diese Datei angelegt:

Name  Artist   Album 
Song 1 Hello World Hey how are [you] 
Text  Me Back  Please! 
Hey  Python   Is Coo-l 

Ich las sie mit:

import pandas as pd 
colnames = [ 'Name', 'Artist', 'Album' ] 
data = pd.read_csv('myfile.csv', delim_whitespace = False, header = None, names = colnames) 

format_string = '[Name] -> [Album] ::: "[Artist]"' 

Die format_string ist, wie ich sie drucken möchten eine Datei aus. Ich möchte in der Lage sein, einen String zu scannen und den Spaltennamen zwischen [column_name] durch den Wert in der aktuellen Zeile zu ersetzen, während ich durch jede Zeile gehe. Ich möchte auch, dass der Benutzer diese Zeichenfolge angibt. Wenn also die column_name mit einer Spalte in übereinstimmt, wird mit der Konvertierung in dieses Format fortgefahren.

Für das obige Beispiel würde dieser Code die format_string eine Schleife durch diese Textdatei und kommen:

Song 1 -> Hey how are [you] ::: "Hello World" 
Text -> Please! ::: "Me Back" 
Hey -> Is Coo-l ::: "Python" 

Antwort

1

Wie dies in Python 3.x This oder andere Tutorial über Format String wird Ihnen helfen.

print('{0} -> {1} ::: "{2}"'.format(name, album, artist)) 

Auch, wie für Ihren Fall (pandas), wie diese gedruckt werden.

for i in range(len(data)): 
    print('{0} -> {1} ::: "{2}"'.format(data['Name'][i], data['Album'][i], data['Artist'][i])) 
Verwandte Themen