开发者

Python command line: editing mistake on previous line?

开发者 https://www.devze.com 2023-03-25 23:47 出处:网络
When using python via the command line, if I see a mistake on a previous line of a nested statement is there any way to remove or edit that line once it has alrea开发者_高级运维dy been entered?

When using python via the command line, if I see a mistake on a previous line of a nested statement is there any way to remove or edit that line once it has alrea开发者_高级运维dy been entered?

e.g.:

>>> 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:]

so rather than retyping the entire thing all over to fix one char, can I go back and edit something in hindsight? I know I could just code it up in vim or something and have a persistent copy I can do anything I want with, but I was hoping for a handy-dandy trick with the command line.

-- thanks!


You can't do such a thing in the original python interpreter, however, if you use the last version of IPython, it provides a lightweight GUI (looks like a simple shell, but is a GUI in fact) which features multi-line editing, syntax highlighting and a bunch of other things. To use IPython GUI, run it with the ipython qtconsole command.


Not that I know of in all the years I've been coding Python. That's what text editors are for =)

If you are an Emacs user, you can set your environment up such that the window is split into the code buffer and Python shell buffer, and then execute your entire buffer to see the changes.


Maybe. The Python Tutorial says:

Perhaps the quickest check to see whether command line editing is supported is typing Control-P to the first Python prompt you get. If it beeps, you have command line editing; see Appendix Interactive Input Editing and History Substitution for an introduction to the keys. If nothing appears to happen, or if ^P is echoed, command line editing isn’t available; you’ll only be able to use backspace to remove characters from the current line.


In addition to @MatToufoutu's suggestion, you might also take a look at DreamPie, though it's just a GUI for the shell without IPython's other extensions.


Now instead of ipython use

jupyter console

in cmd prompt

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号