2012-03-26 19 views
0

Ich habe Probleme mit der Konvertierung des Zeichenfolgenformats in Python (v2.6.5). Ich habe versucht, einen String zu setzen, so zu formatieren ...Grundlegende Python-String-Formatierung.

os.system ('/%s/tabix' % (path) '-h -f ftp://<some_url> 4:387-388 > file.out') 

ist path = 'home/john'

Aber ich bekomme immer die gleichen Fehler

"Not enough arguments for format string" 

ich gelesen die Dokumentation, und diesen Beitrag Not enough arguments for format string, aber ich kann keine angemessene Antwort finden.

Kann mir jemand helfen?

Vielen Dank im Voraus,

peixe

Antwort

6
os.system ('/%s/tabix -h -f ftp://<some_url> 4:387-388 > file.out' % (path)) 

Sie müssen das Format Argumente am Ende des Strings haben. Nicht zwischen zwei Saiten.

+0

Ja, dumm von mir ... xDD ich irgendwo gelesen, dass die Format Argumente direkt nach dem String-Format eingestellt werden sollte. Ich habe in der Vergangenheit in Python programmiert, aber ich erinnere mich nicht, wie die Format-String-Funktion funktioniert. Jetzt weiß ich. Danke allen! peixe – peixe

1

Ich denke, das Problem ist, dass Sie (Pfad) in der Mitte der Zeichenfolge ausfüllen, ohne gleichzeitig eine explizite String-Verkettung durchzuführen. Die beste Lösung ist, es einfach zu machen:

'/%s/tabix -h -f ftp://<some_url> 4:387-388 > file.out' % (path) 
1

Was Sie gepostet haben, ist eigentlich ein Syntaxfehler. Fehlt etwas?

>>> import os 
>>> path='home/john' 
>>> os.system ('/%s/tabix' % (path) '-h -f ftp://<some_url> 4:387-388 > file.out') 
    File "<stdin>", line 1 
    os.system ('/%s/tabix' % (path) '-h -f ftp://<some_url> 4:387-388 > file.out') 
                       ^
SyntaxError: invalid syntax 

Lassen Sie mich schlage vor, Sie verwenden

os.system('/{path}/tabix -h -f ftp://<some_url> 4:387-388 > file.out'.format(path=path))