Уведомления

Группа в Telegram: @pythonsu

#1 Март 29, 2010 21:11:47

krwlr
От:
Зарегистрирован: 2007-01-15
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

правильное форматирование вывода.

всем доброго вечера.. Возник маленький вопрос. Есть такой код:

def usage():
print("""\
%s --options - to do something
%s --options - to do something
%s --options - to do something
%s --options - to do something
%s --options - to do something
%s --options - to do something""" % (sys.argv[0], sys.argv[0], ... sys.argv[0]))
Но не хочется писать 6 раз sys.argv… Какой может быть выход? Что нибудь правильное, лаконичное..
Да, скрипт может менять имя, поэтому указывать имя “./script.py –option - to do something” - не подходит..
Заранее благодарю :)



Офлайн

#2 Март 29, 2010 21:14:07

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

правильное форматирование вывода.

вывод в цикле или можно сделать так ( [sys.argv] * 6 )

Офлайн

#3 Март 29, 2010 21:17:07

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

правильное форматирование вывода.

А если так:

def usage():
print("\
{0} --options - to do something\n\
{0} --options - to do something\n\
{0} --options - to do something\n\
{0} --options - to do something\n\
{0} --options - to do something\n\
{0} --options - to do something".format(sys.argv[0]))



Отредактировано (Март 29, 2010 21:19:26)

Офлайн

#4 Март 29, 2010 21:27:03

krwlr
От:
Зарегистрирован: 2007-01-15
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

правильное форматирование вывода.

o7412369815963
пробовал: TypeError: not enough arguments for format string :)

UsCr
Благодарю, что надо.. Выполняется правда дольше))) Ну да не главное :)



Офлайн

#5 Март 29, 2010 21:31:44

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

правильное форматирование вывода.

А если не секрет: зачем вам такой странный вывод?



Офлайн

#6 Март 29, 2010 21:40:14

krwlr
От:
Зарегистрирован: 2007-01-15
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

правильное форматирование вывода.

UsCr
А если не секрет: зачем вам такой странный вывод?
Что вы, конечно нет, а если бы и был секрет - солгала бы. :)
Программа консольная, запускается с аргументами, использует getopt, имеет много опций.
А почему вывод “странный”? :D

P.S. оффтоп, если создам еще одну тему с одним маленьким вопросиком, меня не забанят за флуд? :)



Офлайн

#7 Март 29, 2010 21:53:09

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

правильное форматирование вывода.

Нет, не забанят, я думаю. Мало того, на форуме поощряется вынос новых вопросов в отдельные темы.

Офлайн

#8 Март 30, 2010 00:53:29

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

правильное форматирование вывода.

optparse is a more convenient, flexible, and powerful library for parsing command-line options than the old getopt module. И он умеет делать вывод –help автоматически.



Офлайн

#9 Март 30, 2010 05:28:05

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

правильное форматирование вывода.

def usage():
print("""\
%(filename)s --options - to do something
%(filename)s --options - to do something
%(filename)s --options - to do something
%(filename)s --options - to do something
%(filename)s --options - to do something
%(filename)s --options - to do something""" % dict(filename=sys.argv[0])
Учите матчасть ;)



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#10 Март 30, 2010 06:20:01

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

правильное форматирование вывода.

Ага. А argparse - еще более convenient & flexible. К слову - теперь живет в стандартной либе Питона 3.2



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version