Python shell interactive output with input

I want to capture the output of the Python shell along with the message that enters it. For example, in the following usage example, help () should also be present on line 4 of the capture.log file:

$ echo "help()" | python3 -i > capture.log   2>&1
$ cat capture.log
Python 3.4.2 (default, Oct  8 2014, 10:45:20) 
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
Welcome to Python 3.4 help utility!

If this is your first time using Python, you should definitely check out
the tutorial on the Internet at http://docs.python.org/3.4/tutorial/.
....
....
+4
source share
1 answer

Assuming a Unix-like environment, you can capture all ttyinput and output with the command script:

$ script capture.log
Script started, output file is capture.log
$ python3
# python interactive session here
$ exit
Script done, output file is capture.log
$ cat capture.log
Script started on Thu Aug 18 21:21:55 2016
$ python3
Python 3.5.2 (default, Jul 21 2016, 07:25:19) 
[GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> help()

Welcome to Python 3.5 help utility!

If this is your first time using Python, you should definitely check out
the tutorial on the Internet at http://docs.python.org/3.5/tutorial/.

....
....
>>> ^D
$ exit

Script done on Thu Aug 18 21:22:06 2016

If, as in the question example, Python is fully pipelined stdinand the goal is to capture the input pipe and output of Python, you can get closer with the command tee:

$ echo "help()" | tee capture.log | python3 -i >> capture.log 2>&1
$ cat capture.log 
help()
Python 3.5.2 (default, Jul 21 2016, 07:25:19) 
[GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
Welcome to Python 3.5 help utility!

If this is your first time using Python, you should definitely check out
the tutorial on the Internet at http://docs.python.org/3.5/tutorial/.
....
....

, , .

+5

Source: https://habr.com/ru/post/1651730/


All Articles