форматирование кода Python: как избежать лишних пробелов в строке, которая обрезается символом перевода строки "\" - PullRequest
1 голос
/ 10 января 2012

Я использую строго 80 символов на строку в моих кодах Python, но иногда мне приходится разбивать строку строки на две части, как показано ниже

print time.strftime("%m/%d/%Y %I:%M:%S \
    %p",time.localtime(os.path.getmtime(fname)))

, и в этом случае вывод будет иметь дополнительные пробелы перед«AM / PM», например

foo.dat was last modified: 01/10/2012 02:53:15                    AM

. Есть простой способ исправить это, просто либо избежать обрезания строк, либо разрешить длинные строки в этом случае, однако мне интересно, есть ли другиеболее внутренние способы решения этой проблемы, позволяющие одновременно выполнять как стрельбу, так и разрыв строки.Вторая строка автоматически смещается редактором, я тоже не хочу этого менять.Спасибо.

Ответы [ 2 ]

7 голосов
/ 10 января 2012

Рекомендуемый способ сделать это состоит в том, чтобы вообще не использовать \, вместо этого использовать скобки.Также используйте тот факт, что последовательные строки объединяются в одну строку.Например:

print time.strftime(("%m/%d/%Y %I:%M:%S "
    "%p"), time.localtime(os.path.getmtime(fname)))
2 голосов
/ 10 января 2012

Да.

>>> x = "one two three "\
... "four five six"
>>> x
'one two three four five six'

Для ясности в исходном файле Python:

x = "one two three "\
"four five six"

или

print time.strftime("%m/%d/%Y %I:%M:%S"\
" %p",time.localtime(os.path.getmtime(fname)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...