我正在用pdb調試Python代碼。 代碼需要輸入從stdin,如:如何用輸入分配Python代碼?
python -m pdb foo.py < bar.in
然後PDB將接受bar.in爲命令。 如何告訴pdb輸入是爲foo.py而不是爲pdb?
我正在用pdb調試Python代碼。 代碼需要輸入從stdin,如:如何用輸入分配Python代碼?
python -m pdb foo.py < bar.in
然後PDB將接受bar.in爲命令。 如何告訴pdb輸入是爲foo.py而不是爲pdb?
A類總工作的解決辦法是把cont
在bar.in
開頭:
cont
one
two
three
four
[email protected] ~$ python -m pdb cat.py < bar.in
> ~/cat.py(1)<module>()
-> import sys
(Pdb) one
two
three
four
The program finished and will be restarted
> ~/cat.py(1)<module>()
-> import sys
(Pdb)
嗯,這是一個調整阿龍的回答,但我認爲它忽略了一點在你想交互在某個時候調試,對吧?這可以工作,但程序在你有機會調試之前就會退出。
(echo cont;cat bar.in) | python -m pdb foo.py
我想,如果你可以編輯foo.py,做import pdb
然後在foo.py做pdb.set_trace()
有趣的點,只是運行python foo.py
沒有-m pdb
,並給它bar.in正常
python foo.py < bar.in