---------------------------------------
import
sys
...
if __
name__=='__main__':
oldStdout =
sys.
stdout
sys.
stdout =
open("script.log", "w+")
print script.SchoolSong(Download())
sys.
stdout = oldStdout
----------------------------------------
使用pdb,調試。
Python內建了一個調試器叫pdb,和Gnu的gbd類似。下面用一個簡單的程式來示範pdb的功能。程式碼如下:
#!/usr/bin/python
import pdb
a = "aaa"
pdb.set_trace()
b = "bbb"
c = "ccc"
final = a + b + c
print final
該程式已匯入pdb模組,並在代碼中添加的pdb.set_trace()跟蹤點。現在讓我們來運行該程式。
localhost:~/python/pdb# python pdbtest.py
--Return--
> /usr/lib/python2.3/pdb.py(992)set_trace()->None
-> Pdb().set_trace() # 從跟蹤點開始執行
(Pdb) n # n 讀入下一行代碼
> /root/python/pdb/pdbtest.py(6)?()
-> b = "bbb"
(Pdb) n
> /root/python/pdb/pdbtest.py(7)?()
-> c = "ccc"
(Pdb) p b # p 列印變數值
'bbb'
(Pdb) l # l 顯示當前執行位置
2
3 import pdb
4 a = "aaa"
5 pdb.set_trace()
6 b = "bbb"
7 -> c = "ccc"
8 final = a + b + c
9 print final
10
[EOF]
(Pdb) n
> /root/python/pdb/pdbtest.py(8)?()
-> final = a + b + c
(Pdb) n # 如果命令和上次的一樣,也可直接按斷行符號,不用輸入'n'
> /root/python/pdb/pdbtest.py(9)?()
-> print final
(Pdb) n
aaabbbccc
--Return--
> /root/python/pdb/pdbtest.py(9)?()->None
-> print final
(Pdb) p a,b,c,final
('aaa', 'bbb', 'ccc', 'aaabbbccc')
(Pdb)
('aaa', 'bbb', 'ccc', 'aaabbbccc')
(Pdb) n
localhost:~/python/pdb# # 返回shell
pdb還有很多命令,用help命令就可以列出所有的pdb命令,用help p可以查詢p命令的說明。