$ STR='new
line'
$ printf '%s' "$STR"
new
line
Да, это означает запись Enter, где это необходимо в коде. new line
. \n ### A common way to represent a new line character.
\012 ### Octal value of a new line character.
\x0A ### Hexadecimal value of a new line character.
Но все они требуют «интерпретации» каким-либо инструментом ( POSIX printf ): echo -e "new\nline" ### on POSIX echo, `-e` is not required.
printf 'new\nline' ### Understood by POSIX printf.
printf 'new\012line' ### Valid in POSIX printf.
printf 'new\x0Aline'
printf '%b' 'new\0012line' ### Valid in POSIX printf.
И поэтому инструмент должен построить строку с новой строкой: $ STR="$(printf 'new\nline')"
$ printf '%s' "$STR"
new
line
$ STR=$'new\nline'
$ echo '6e65770a6c696e650a' | xxd -p -r
new
line
Или $ echo "new line" | sed 's/ \+/\n/g'
new
line
Существует решение Вашей проблемы, которая распределяется с самим Python. pindent.py
, это расположено в каталоге Tools\Scripts в установке окон (мой путь к нему является C:\Python25\Tools\Scripts), похоже, что Вы имели бы к [1 110] захват это с svn.python.org при работе Linux или OSX.
Это добавляет комментарии, когда блоки закрываются или могут правильно расположить код с отступом, если комментарии вставляются. Вот пример кода, произведенного pindent с командой:
pindent.py -c myfile.py
def foobar(a, b):
if a == b:
a = a+1
elif a < b:
b = b-1
if b > a: a = a-1
# end if
else:
print 'oops!'
# end if
# end def foobar
, Где оригинал myfile.py
был:
def foobar(a, b):
if a == b:
a = a+1
elif a < b:
b = b-1
if b > a: a = a-1
else:
print 'oops!'
можно также использовать pindent.py -r
для вставки корректного добавления отступа на основе комментариев (прочитайте заголовок pindent.py для деталей), это должно позволить Вам кодировать в Python, не вызывая беспокойство о добавлении отступа.
, Например, работая pindent.py -r myfile.py
преобразует следующий код в myfile.py
в то же, правильно расположенное с отступом (и также прокомментировал), код, как произведено pindent.py -c
пример выше:
def foobar(a, b):
if a == b:
a = a+1
elif a < b:
b = b-1
if b > a: a = a-1
# end if
else:
print 'oops!'
# end if
# end def foobar
мне было бы интересно изучать, какое решение Вы заканчиваете тем, что использовали, если Вы требуете дальнейшей помощи, прокомментируйте это сообщение, и я попытаюсь помочь.
Я лично сомневаюсь, что в настоящее время существует в данный момент, поскольку много поклонников Python любит то, что Python является этим путем, разграниченный пробел.
я на самом деле никогда не думал об этом как проблема доступности как бы то ни было. Возможно, это - что-то для выдвижения как отчет об ошибках к Python?
я предположил бы, что Вы используете программу экранного доступа здесь однако для вывода? Таким образом, вкладки казались бы "невидимыми" для Вас? С Для слепых выводом могло бы быть легче читать, но я могу понять точно, как путание этого могло быть.
На самом деле, это очень интересно мне. Мне жаль, что я не знал достаточно, чтобы быть в состоянии записать приложение, которое сделает это для Вас.
я думаю, что это - определенно что-то, для чего я вставлю отчет об ошибках, если Вы уже не сделали так себя или хотите.
Редактирование: Кроме того, как отметил John Millikin существует также PyBraces, Который мог бы быть эффективным решением Вас и может быть возможен быть взломанным вместе иждивенец на Ваших навыках кодирования, чтобы быть точно, в чем Вы нуждаетесь (и я надеюсь, что, если это так, Вы выпускаете его для других как себя для использования)
Редактирование 2: я имею всего , сообщило это средству отслеживания ошибки Python
Хотя я не являюсь слепым, я услышал хорошие вещи [приблизительно 110] Emacspeak. У них был режим Python начиная с их 8,0 выпусков в 1998 (они, кажется, произошли до выпуска 28.0!). Определенно стоящий проверки.
Необходимо быть в состоянии настроить редактора для разговора вкладок и пробелов - я знаю, что это возможно к дисплей пробел в большинстве редакторов, таким образом, должна быть опция доступности где-нибудь для разговора их.
Сбой, что, существует pybraces, который был записан как розыгрыш, но мог бы на самом деле быть полезен для Вас с небольшим количеством работы.
Я ценю Вашу проблему, но думаю, что Вы определяете реализацию вместо проблемы, в которой Вы нуждаетесь решенный. Вместо того, чтобы преобразовать в фигурные скобки, как насчет того, чтобы работать над путем к Вашей программе экранного доступа, чтобы сказать Вам уровень отступа?
, Например, некоторые люди работали над синтаксисом энергии, окрашивающим для представления уровней отступа Python. Возможно, измененный синтаксис, окрашивающий, мог произвести что-то, что Ваша программа экранного доступа считает?
Я использую затмение с pydev расширениями, так как это - IDE, с которым у меня есть большой опыт. Я также ценю умное добавление отступа, которое это предлагает для кодирования если операторы, циклы, и т.д. Я настроил pindent.py сценарий как внешний инструмент, что я могу работать на в настоящее время фокусируемом модуле Python, который делает мою жизнь легче, таким образом, я вижу то, что закрывается где с необходимостью постоянно проверить добавление отступа.
Существуют различные ответы, объясняющие, как сделать это. Но я рекомендовал бы не следовать этим маршрутом. В то время как Вы могли использовать сценарий, чтобы сделать преобразование, из-за этого будет сложно работать над проектом команды.
Моя рекомендация состояла бы в том, чтобы настроить Вашу программу экранного доступа для объявления о вкладках. Это не является столь раздражающим, как это звучит, так как это только сказало бы "отступ 5", а не "вкладка вкладки вкладки вкладки вкладки". Кроме того, добавление отступа было бы только считано каждый раз, когда оно изменилось, таким образом, Вы могли пройти весь блок кода, не слыша уровня отступа. Таким образом слушание добавления отступа не является более подробным, чем слушание фигурных скобок.
, Поскольку я не знаю, какую операционную систему или программу экранного доступа Вы используете, я, к сожалению, не могу дать точные шаги для достижения этого.
Edsger Дейкстра использовал if ~ fi и do ~ od в своем «Защищенном командном языке», они, по всей видимости, происходят из Algol68 . Также было несколько примеров защищенных блоков Python, используемых в RosettaCode.org . охраняемые блоки if / fi, do / od & try / yrt вместе с точкой с запятой ";" разделить заявления. Отлично подходит для однозначных списков журналов или вырезания / вставки с веб-страниц.
Должно быть достаточно легко написать короткую программу на Python для вставки / удаления защитных блоков и точек с запятой.