在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。
答案 0 :(得分:1)
不容易。重定向是主机命令shell的一个特性,在IPython中运行任何东西都会使你与之隔离。
另一种做你正在寻找的方法是将IPython带入你的程序。如果你知道它破坏的地方,你可以将以下代码添加到try的except块中 - 除了虚线外:
import IPython
IPython.embed()
这将在发生错误的上下文中启动交互式IPython shell。
或者,您可以在调试器的控制下运行该程序: Step-by-step debugging with IPython