Python: печать отформатирована в абсолютном горизонтальном положении - PullRequest
0 голосов
/ 16 января 2020

Основной вопрос c заключается в следующем: я знаю, как выравнивать по правому краю, т.е. применять отступ из 10 пробелов:

'some string %10s' % 'place me 10 spaces after previous character'

, но как печатать текст в абсолютной горизонтальной позиции на линии?

Я форматирую страницы справки, то есть серию пар строк, используя Спецификация формата Mini-Language . Как вы можете видеть ниже, я использую шаблон и .format для написания строк, состоящих из команды и строки справки. Первая строка вывода в порядке, но затем я разделил команду на несколько строк, и по этой причине строка справки не отображается в горизонтальной позиции 100 (как указано в шаблоне):

template = "{0:30} {1:100}\n"
command_help = [
  ('myscript --help', 
   'Show the help'),
  ('myscript do_this --option1=10 \n         --option2=3 ...', 
   'Script does something. NB bad padding'),
  ('myscript do_this --option1=10 \n         --option2=3 ...', 
   '%28s' % 'Manually adding padding does not work'),
  ('myscript do_first \nmyscript do_second \nmyscript do_third', 
   'Common command sequence to do something. NB bad padding')
]
for command, help in command_help:
    print(template.format(command, help))

Результат:

myscript --help                Show the help                                                                                       

myscript do_this --option1=10 
         --option2=3 ... Script does something. NB bad padding                                                               

myscript do_this --option1=10 
         --option2=3 ... Manually adding padding does not work                                                                       

myscript do_first 
myscript do_second 
myscript do_third Common command sequence to do something. NB bad padding
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...