1. arguments with sys.argv

    $ python3 report.py portfolio.csv prices.csv
    
    sys.argv # ['report.py, 'portfolio.csv', 'prices.csv']
    
    if len(sys.argv) != 3:
        raise SystemExit(f'Usage: {sys.argv[0]} ' 'portfile pricefile')
    portfile = sys.argv[1]
    pricefile = sys.argv[2]
    
  2. sys.path

    sys.modules.keys() # ['copy_reg', '__main__', 'site', '__builtin__', 'encodings', 'encodings.encodings', 'posixpath', ...]
    sys.path # ['', '/usr/local/lib/python36/python36.zip', '/usr/local/lib/python36',...]
    
    sys.path.append('/project/foo/pyfiles')
    $ env PYTHONPATH=/project/foo/pyfiles python3 OR export PYTHONPATH=$PYTHONPATH:$PWD
    
    $ setenv NAME dave
    name = os.environ['NAME']
    
  3. sys.exit(exitcode), **raise** SystemExit, **raise** SystemExit, **raise** SystemExit('Informative message')