【问题标题】:Is there an IPython equivalent bash's semicolon?是否有 IPython 等效 bash 的分号?
【发布时间】:2015-08-13 08:27:31
【问题描述】:

我使用 IPython 作为我的交互式 shell,而且我几乎总是在开始时运行两个命令 - 类似于:

%run helper_functions.py
data = import_data('file_with_data')

我想要一个同时运行这两个的符号(所以我可以用历史中的“向上”箭头来回忆它们)类似于 echo 1 ; echo 2 在 bash 中所做的。

我知道我可以使用 Start ipython running a script 的脚本启动 IPython。

【问题讨论】:

  • from file_that_runs_helper_functions_and_defines_data import data

标签: ipython


【解决方案1】:

分号是 Python 中有效的语句分隔符,与换行符相同,因此您可以将其与常规命令一起使用:

a=5; a=a+1; print "This is a: %s" % a

无论如何,正如tobias_k 所指出的,这不适用于“run”,它是一个特殊的 iPython 宏(请参阅iPython built-in magic commands)并更改了命令行解释。除了%run helper_functions.py; data = import_data('file_with_data'),你可以使用几乎等价的东西:

__builtin__.execfile('helper_functions.py') ; data = import_data('file_with_data')

您在 iPython 中没有跟踪,但您的脚本仍在执行并且变量位于您的交互式命名空间中。

【讨论】:

  • 这似乎不起作用。 ;不能直接在文件名后面,data后面好像也没有定义。
  • a = 1, b = 2 确实有效,但神奇的%run 似乎会导致问题,当我运行%run stuff.py ; b = 3 时,b 仍然是 2。
猜你喜欢
  • 2016-04-08
  • 2011-04-14
  • 1970-01-01
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
  • 2021-12-04
  • 2021-01-03
  • 2016-10-26
相关资源
最近更新 更多