在IPython中使用输入重定向命令(“<”)

时间:2016-02-12 01:54:01

标签: python ipython io-redirection

在Windows命令行中,我使用redirection operator ("<")来读取文件中的输入。要运行我的python模块,我会做类似的事情:

python myscript.py <input.txt

myscript.py中,我使用sys.stdin.readline()来读取输入流,例如:

def main(argv):
    line = sys.stdin.readline() 
    while line:
        doSomething()
        line = sys.stdin.readline()

if __name__ == "__main__": 
    main(sys.argv)

这可以在命令行中找到。

有没有办法在IPython中使用重定向命令?我想调试该文件。感谢。

我在Win64上运行Python 3.5.1 :: Anaconda 2.5.0。

1 个答案:

答案 0 :(得分:1)

不容易。重定向是主机命令shell的一个特性,在IPython中运行任何东西都会使你与之隔离。

另一种做你正在寻找的方法是将IPython带入你的程序。如果你知道它破坏的地方,你可以将以下代码添加到try的except块中 - 除了虚线外:

import IPython
IPython.embed()

这将在发生错误的上下文中启动交互式IPython shell。

或者,您可以在调试器的控制下运行该程序: Step-by-step debugging with IPython