在ipython中添加换行符
如果在iPython或任何多行命令中引入for循环,如何返回并向其添加行?我运行了以下命令:在ipython中添加换行符,python,ipython,Python,Ipython,如果在iPython或任何多行命令中引入for循环,如何返回并向其添加行?我运行了以下命令: for row in table.find_all('tr'): cells = row.find_all('td') for c,cell in enumerate(cells): print c,":",cell.get_text().strip() try: this = cells[0] that = cells[1]
for row in table.find_all('tr'):
cells = row.find_all('td')
for c,cell in enumerate(cells):
print c,":",cell.get_text().strip()
try:
this = cells[0]
that = cells[1]
the_docket = cells[2]
other_thign = cells[3]
jumble = re.sub('\s+',' ',str(cells[5])).strip()
except:
"Nope"
并意识到我需要在其中添加一行,但我不能只在iPython中点击“enter”,这是运行该命令的b/c。因此,我可以在iPython中编辑多行命令吗?iPython中的
%edit
魔术功能允许您在您喜爱的编辑器中编辑代码,然后将其执行,就像直接键入一样。您还可以编辑已键入repl的代码,因为它存储在特殊变量中,例如:
In [1]: def foo(x):
...: print x
...:
In [2]: %edit _i1
还有一种方法可以直接在repl中添加换行符:ctrl-v,ctrl-j ctrl-v基本上允许您发送控制代码,然后ctrl-j是换行符(换行符)的代码。键入有点笨拙,但它的优点是既可以在常规Python shell中工作,也可以在Bash中工作
编辑:至少在iTerm2中,您还可以将其分配给单个热键。我将ctrl-enter设置为0x16 0x0a的“发送十六进制代码”。也可以使用cmd enter或其他任何工具。为了完整性:较新的IPython版本(0.11+)有一个非常好的图形控制台,允许您使用箭头导航代码,甚至使用鼠标重新定位光标 在多行语句中,某些键具有特殊功能(箭头导航、回车插入换行符等)。您必须将光标定位在语句最后一行的末尾,以获得默认行为,例如,获得向上箭头↑ 表示“上一条语句”,而不是“将光标移到上一行”。或者进入“意思是执行代码”,而不是“在代码中间插入断线”。 关于它的文档在不同的页面中有点稀疏和零碎,因此这里是开始使用它的三个基本链接:
ipython\u qtconsole\u config.py
这个问题已经困扰了一段时间了。我刚刚发现,当使用Ctrl-qCtrl-j(即小写的Q,j,无需按住shift键)时,将向现有的IPython编辑会话添加换行符
for li in some_list: print(li)
在冒号后移动光标并按Ctrl-qCtrl-j
IPython:5.2.1,iTerm2:3.0.15,macOS:10.12.6一种简单的方法是使用
\代码>操作员<代码>
表示命令结束,而\
表示命令在新行中的位置,如下所示:
In[4]: password = "123";\
username = "alpha"
这将允许您在ipython中使用多行命令,而无需调用编辑器键入
Ctrl+q
,然后Enter
。正如其他人指出的,Ctrl+q
允许您发送字符代码,但是点击Ctrl+q
然后点击Enter
可能比点击Ctrl+q
然后点击Ctrl+j
更自然
另一个选项是键入
(
,然后输入,然后写入并删除(
)。此解决方案类似于键入;\
表示语句未完成的解决方案。您可以在上使用ctrl+(即按住控制按钮并输入字符“o”、“n”)。你也可以分两步来做-ctrl+o
ctrl+n
,但我发现前者更容易
ctrl-o
-进入多行模式
ctrl-n
-继续访问命令历史记录。
但由于没有向前的历史记录,光标只会移动到下一行
我验证了它在运行git bash 2.18.0+windows 7的机器上可以与IPython 5.3.0和IPython 7.3.0一起工作。我确实查看了文档,但不太清楚我要找的是什么。对于我们这些更新到IPython的人,只想指出,%edit\u 2
将在exa中重新打开编辑会话上面的示例和%edit-p
始终打开您最后的编辑会话。对于我来说%edit
打开了我最不喜欢的编辑器!我如何请求其他编辑器?@peer%edit
使用环境变量editor
,许多命令行实用程序在需要打开编辑器时都会使用该变量。例如,如果运行EDITOR=vim ipython
-将使用vim。您可以在bashrc/zshrc/etc.文件中将其设置为不同的值,以便始终使用。如果您在家里玩,结果证明真正的解决方案是gedit+ipython侦听器。编辑并运行,而不是尝试在终端中组成循环。您还可以使用ctrl-v、ctrl-i添加选项卡。Or ctrl-v,tab添加一个选项卡这也适用于使用ConEmu的Powershell中的Windows。^ ^这对我有效,使用ctrl-v
的其他答案对我不起作用,但ctrl-q
让我输入断行符注意:你不必放开ctrl键,这项功能才有效:你可以按住ctrl
并按q
然后按j
。我很困惑有两种解决方案具有相似的向上投票权…但使用不同的键盘快捷键。此解决方案使用ctrl+q,ctrl+j@ShawnFumo的解决方案使用ctrl+v,ctrl+j。怎么会有两种不同的键盘快捷键都可以工作?@javadba:这两种组合用于在Emac的minibuffer中添加换行符。我抓住了一个机会可能适用于IPython。Ctrl+q Enter
快捷方式不适用于IPython 7.3.0,但适用于IPython 5.3.0。我使用的是git bash 2.18.0+Windows 7。另一种选择是使用Ctrl+on
,这在两个IPython版本中都能很好地工作。
In[4]: password = "123";\
username = "alpha"