[Tutor] Collecting output from Python scripts executed via Cron

Alex Kleider akleider at sonic.net
Fri May 19 11:52:21 EDT 2017


On 2017-05-18 18:48, Leo Silver wrote:
> I have written a several Python scripts to collect data from external
> sources (an email account and an sftp site).
> 
> In development I run the scripts from IDLE or the command line and can 
> view
> the output of various print statements in the scripts which helps me to
> monitor progress and confirm correct operation.
> 
> However, in production I will be running the scripts via Cron.
> 
> Is there a recommended/ elegant way to collect this output on the fly 
> for
> later review/ processing.

 From the python documentation of the print function:
"""
print([object, ...], *, sep=' ', end='\n', file=sys.stdout)

     Print object(s) to the stream file, separated by sep and followed by 
end. sep, end and file, if present, must be given as keyword arguments.

     All non-keyword arguments are converted to strings like str() does 
and written to the stream, separated by sep and followed by end. Both 
sep and end must be strings; they can also be None, which means to use 
the default values. If no object is given, print() will just write end.

     The file argument must be an object with a write(string) method; if 
it is not present or None, sys.stdout will be used.
"""
The following might work:
>>> with open("progress.txt", "a") as outf:
         print("what ever you used to print", file=outf)


> 
> Previously I have written bash scripts simply redirecting the standard
> output to a text file and emailed this back to myself but I would like 
> to
> do this directly within Python rather than having to wrap the Python 
> script
> in a bash script.
> 
> Thanks, Leo.
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor


More information about the Tutor mailing list