在ipython中添加换行符

2024-04-19 06:14:42 发布

您现在位置:Python中文网/ 问答频道 /正文

如果在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]
        the_docket = cells[2]
        other_thign = cells[3]
        jumble = re.sub('\s+',' ',str(cells[5])).strip()            
    except:
        "Nope"

我意识到我需要添加一行代码,但我不能在iPython中点击“enter”,这是运行命令的b/c。那么我可以在iPython中编辑多行命令吗?


Tags: in命令foripythontablecellallfind
3条回答

还有一种方法可以直接在repl中添加换行符:ctrl-v,ctrl-j

ctrl-v基本上允许发送控制代码,然后ctrl-j是换行符(换行符)的代码。输入有点笨拙,但它的优点是既可以在常规Python shell中工作,也可以在Bash本身中工作。

编辑:至少在iTerm2中,还可以将其分配给单个热键。我将ctrl-enter设置为0x16 0x0a的“发送十六进制代码”。也可以使用cmd-enter或其他任何方式。

这问题已经困扰了一段时间。我刚刚发现,当使用Ctrl-qCtrl-j时(即小写的q,j,无需按住shift键),将向现有的IPython编辑会话添加换行。

for li in some_list: print(li)    

将光标移到冒号后面,然后按Ctrl-qCtrl-j

for li in some_list:
print(li)

IPython:5.2.1,iTerm2:3.0.15,macOS:10.12.6

iPython中的%editmagic函数允许您在您喜欢的编辑器中编辑代码,然后将其作为直接键入的代码执行。您还可以编辑已经输入到repl中的代码,因为它存储在一个特殊的变量中,例如:

In [1]: def foo(x):
   ...:     print x
   ...:     
In [2]: %edit _i1

相关问题 更多 >