Notebook
$ python readings.py --mean data/inflammation-01.csv 5.45 5.425 6.1 ... 6.4 7.05 5.9
$ head -4 inflammation-01.csv | python readings.py --min
$ python readings.py --max inflammation-*.csv
import sys print('version is', sys.version)
$ python sys-version.pyversion is 3.4.3+ (default, Jul 28 2015, 13:17:50) [GCC 4.9.3]
import sys print('sys.argv is', sys.argv)
$ python argv-list.pysys.argv is ['argv-list.py']
$ python argv-list.py first second thirdsys.argv is ['argv-list.py', 'first', 'second', 'third']
$ cat readings-01.py
$ python readings-01.py inflammation-01.csv
$ cat readings-02.py
$ python readings-02.py data/inflammation-01.csv5.45 5.425 6.1 5.9 5.55 6.225 5.975 6.65 6.625 6.525 6.775 5.8 6.225 5.75 5.225 6.3 6.55 5.7 5.85 6.55 5.775 5.825 6.175 6.1 5.8 6.425 6.05 6.025 6.175 6.55 6.175 6.35 6.725 6.125 7.075 5.725 5.925 6.15 6.075 5.75 5.975 5.725 6.3 5.9 6.75 5.925 7.225 6.15 5.95 6.275 5.7 6.1 6.825 5.975 6.725 5.7 6.25 6.4 7.05 5.9
$ ls data/small-*.csvsmall-01.csv small-02.csv small-03.csv$ cat data/small-01.csv0,0,1 0,1,2$ python readings-02.py data/small-01.csv0.333333333333 1.0
$ cat readings-03.pyimport sys import numpy def main(): script = sys.argv[0] for filename in sys.argv[1:]: data = numpy.loadtxt(filename, delimiter=',') for m in data.mean(axis=1): print(m) main()
$ python readings-03.py small-01.csv small-02.csv0.333333333333 1.0 13.6666666667 11.0
$ cat readings-04.pyimport sys import numpy def main(): script = sys.argv[0] action = sys.argv[1] filenames = sys.argv[2:] for f in filenames: data = numpy.loadtxt(f, delimiter=',') if action == '--min': values = data.min(axis=1) elif action == '--mean': values = data.mean(axis=1) elif action == '--max': values = data.max(axis=1) for m in values: print(m) main()
$ python readings-04.py --max small-01.csv1.0 2.0
$ cat readings-05.pyimport sys import numpy def main(): script = sys.argv[0] action = sys.argv[1] filenames = sys.argv[2:] assert action in ['--min', '--mean', '--max'], \ 'Action is not one of --min, --mean, or --max: ' + action for f in filenames: process(f, action) def process(filename, action): data = numpy.loadtxt(filename, delimiter=',') if action == '--min': values = data.min(axis=1) elif action == '--mean': values = data.mean(axis=1) elif action == '--max': values = data.max(axis=1) for m in values: print(m) main()
$ cat count-stdin.pyimport sys count = 0 for line in sys.stdin: count += 1 print(count, 'lines in standard input')
$ python count-stdin.py < small-01.csv2 lines in standard input
$ count_stdin.py small-01.csv
$ cat readings-06.pydef main(): script = sys.argv[0] action = sys.argv[1] filenames = sys.argv[2:] assert action in ['--min', '--mean', '--max'], \ 'Action is not one of --min, --mean, or --max: ' + action if len(filenames) == 0: process(sys.stdin, action) else: for f in filenames: process(f, action)
$ python readings-06.py --mean small-01.csv0.333333333333 1.0