I have several thousand lines of code that all ultimately results in a few strings being printed using print() functions. Is there a way to, at the bottom of my code, export everything that has been printed to a txt file?
CodePudding user response:
This will help.
python main.py > output.txt
The operator >
redirects the output of main.py
from stdout
to the regular file output.txt
.
CodePudding user response:
You can do this with redirection in your shell or reopening sys.stdout
. Here are both ways:
- Reopen
sys.stdout
:
At the beginning of your code, you can use this code:
import sys
sys.stdout = open('logfile', 'w')
# ... rest of your program ...
and everything printed to standard output (including print()
calls) will be written to logfile
. This method will always work.
- Redirection in your shell:
This is my preferred method if you're running the script from the command line every time. In some niche cases, this won't work (ie: the script is being run by some other program), but it will work for 90% of cases. You can simply run your original script like this:
python myFile.py > logfile
and everything will be written to logfile
. If for some reason this doesn't work for you, use method #1.