Основное форматирование строки Python. - PullRequest
0 голосов
/ 26 марта 2012

У меня проблемы с преобразованием формата строки в Python (v2.6.5).Я пытался установить строку для формата, подобного этому ...

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

являющийся path = 'home / john'

Но я всегда получаю ту же ошибку

"Not enough arguments for format string"

Я прочитал документацию и этот пост Недостаточно аргументов для строки формата , но я не могу найти подходящий ответ.

Может ли кто-нибудь мне помочь?

Спасибозаранее

peixe

Ответы [ 3 ]

6 голосов
/ 26 марта 2012
os.system ('/%s/tabix -h -f ftp://<some_url> 4:387-388 > file.out' % (path))

Вы должны иметь аргументы формата в конце строки.Не между двумя строками.

1 голос
/ 26 марта 2012

То, что вы опубликовали, на самом деле является синтаксической ошибкой.Чего-то не хватает?

>>> 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

Позвольте мне предложить вам использовать

os.system('/{path}/tabix -h -f ftp://<some_url> 4:387-388 > file.out'.format(path=path))
1 голос
/ 26 марта 2012

Мне кажется, проблема в том, что вы заполняете (путь) в середине строки, не выполняя явной конкатенации строк одновременно. Лучшее решение - просто сделать это:

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