tee#
Prints arguments on screen and in file, like Unix/Linux tee utility.
This module was written by Matthias Cuntz while at Department of Computational Hydrosystems, Helmholtz Centre for Environmental Research - UFZ, Leipzig, Germany, and continued while at Institut National de Recherche pour l’Agriculture, l’Alimentation et l’Environnement (INRAE), Nancy, France.
- copyright:
Copyright 2014-2022 Matthias Cuntz, see AUTHORS.rst for details.
- license:
MIT License, see LICENSE for details.
The following functions are provided:
|
Prints arguments on screen and in file, like Unix/Linux tee utility. |
- History
Written Oct 2014 by Matthias Cuntz (mc (at) macu (dot) de)
Allow that file keyword not given, Nov 2016, Matthias Cuntz
Make numpy doctsring format, Dec 2019, Matthias Cuntz
Code refactoring, Sep 2021, Matthias Cuntz
More consistent docstrings, Jan 2022, Matthias Cuntz
- tee(*args, **kwargs)[source]#
Prints arguments on screen and in file, like Unix/Linux tee utility.
Calls print function twice, once with the keyword file and once without, i.e. prints on sys.stdout.
- Parameters:
*args (iterable) – All arguments of the print function; will be passed to the print function.
**kwargs (dict) – All keyword arguments of the print function; will be passed to the print function.
file (object) – The file argument must be an object with a write(string) method. If it is not present or None, *args will be printed on sys.stdout only. Since printed arguments are converted to text strings, print() cannot be used with binary mode file objects.arguments.
- Returns:
If file is given and not None, then print will be called with *args and **kwargs and a second time with the file keyword argument removed, so that *args will be written to sys.stdout. If file is not given or None, *args will only be written to sys.stdout, i.e. tee is a simple wrapper of the print function.
- Return type:
None
Examples
>>> st = 'Output on screen and in log file' >>> ff = 'tee_log.txt' >>> f = open(ff, 'w') >>> tee(st, file=f) Output on screen and in log file >>> f.close()
>>> f = open(ff, 'r') >>> test = f.readline() >>> f.close() >>> print(test[:-1]) # rm trailing newline character Output on screen and in log file >>> import os >>> os.remove(ff)
>>> f=None >>> st = 'Output only on screen' >>> tee(st, file=f) Output only on screen >>> tee(st) Output only on screen