如何在python中打开shell窗口输出打印实时调试信息

时间:2013-12-17 14:04:32

标签: python shell debugging redirect

我可以在python中打开一个用于打印调试信息的shell窗口,而不会破坏代码的执行顺序吗?

例如:

def foo(b):
    print b

for a in range(0, 100):
    print a       # normally this will be used for on-the-fly simple debugging purpose 
                  # and will mess the console output of foo()          
    foo(a)

我可以这样做:

newshell = <new cmd.exe or bash>

for a in range(0, 100):
    newshell.print(a)       # information will be printed to new opened shell  
    foo(a)

提前致谢。

2 个答案:

答案 0 :(得分:0)

你可以:

  1. 使用python日志记录。 http://docs.python.org/2/library/logging.html
  2. 只需写入文件,然后从终端执行:$ tail -f output.txt
  3. 写入您已打开的终端(即linux),写入文件描述符/ dev / pts / X(使用X:1,2 ......,您可以看到正确的数字与$ who)< / LI>

答案 1 :(得分:0)

我们不需要 shell 来打印一些东西。您可以使用Tkinter文字widget

from Tkinter import Tk, Text, END

root = Tk()
text = Text(root)
text.pack()

def foo(b):
    print b

for a in range(0, 100):
    text.insert(END, str(a)+"\n")
    text.see(END)
    text.update()
    foo(a)

text.wait_window()  # wait until we close the window