Командная строка Python: ошибка редактирования в предыдущей строке? - PullRequest
11 голосов
/ 05 августа 2011

При использовании python через командную строку, если я вижу ошибку в предыдущей строке вложенного оператора, есть ли способ удалить или изменить эту строку, если она уже была введена?

например:.

>>> file = open("file1", "w")
>>> for line in file:
...     parts = line.split('|')   <-- example, I meant to type '\' instead
...     print parts[0:1]
...     print ";"
...     print parts[1:]

Так что, вместо того, чтобы перепечатывать все целиком, чтобы исправить один символ, могу ли я вернуться и отредактировать что-то задним числом? Я знаю, что могу просто закодировать это в vim или что-то в этом роде и получить постоянную копию, с которой я могу делать все, что захочу, но я надеялся на полезный трюк с командной строкой.

- спасибо!

Ответы [ 5 ]

7 голосов
/ 05 августа 2011

Вы не можете сделать это в оригинальном интерпретаторе Python, однако, если вы используете последнюю версию IPython, она обеспечивает облегченный графический интерфейс пользователя (выглядит какпростая оболочка, но на самом деле это GUI), которая включает многострочное редактирование, подсветку синтаксиса и множество других вещей.Чтобы использовать IPython GUI, запустите его с командой ipython qtconsole.

1 голос
/ 05 августа 2011

Может быть. Python Tutorial гласит:

Возможно, самая быстрая проверка, чтобы увидеть, поддерживается ли редактирование командной строки, - это нажать Control-P для первого полученного приглашения Python.Если он подает звуковой сигнал, у вас есть редактирование командной строки;см. Приложение Интерактивный ввод Редактирование и подстановка истории для ознакомления с клавишами.Если кажется, что ничего не происходит, или если отображается ^ P, редактирование командной строки недоступно;вы сможете использовать только клавишу Backspace для удаления символов из текущей строки.

1 голос
/ 05 августа 2011

Не то, что я знаю за все годы, когда я программировал на Python.Вот для чего нужны текстовые редакторы =)

Если вы являетесь пользователем Emacs, вы можете настроить свою среду таким образом, чтобы окно было разделено на буфер кода и буфер оболочки Python, а затем выполнили весь свой буфер, чтобы увидетьизменения.

0 голосов
/ 14 сентября 2017

Теперь вместо ipython используйте

jupyter console

в приглашении cmd

0 голосов
/ 05 августа 2011

В дополнение к предложению @ MatToufoutu, вы также можете взглянуть на DreamPie , хотя это всего лишь графический интерфейс для оболочки без других расширений IPython.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...