2010-05-04 28 views
6

Estoy depurando el código de Python con pdb. El código necesario de entrada de la entrada estándar, como:Cómo pdb Código Python con entrada?

python -m pdb foo.py < bar.in 

A continuación, el AP aceptarán la bar.in como comandos. ¿Cómo decirle a pdb que la entrada es para foo.py y no para pdb?

Respuesta

1

Un tipo de trabajo bruto alrededor es poner cont al comienzo de 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) 
3

Bueno, esto es un pellizco a la respuesta de Aaron, pero creo que se pierde el punto en que desea de forma interactiva depurar en algún momento, ¿verdad? Esto funciona, pero el programa se cierra antes de que tengas la oportunidad de depurar.

(echo cont;cat bar.in) | python -m pdb foo.py 

Creo que si se puede editar foo.py, hago import pdb luego al punto interesante en foo.py hacer pdb.set_trace(), y simplemente correr python foo.py sin la -m pdb y darle bar.in normalmente

python foo.py < bar.in 
Cuestiones relacionadas