Skip to content

Instantly share code, notes, and snippets.

@simomarsili
Last active September 24, 2020 10:24
Show Gist options
  • Save simomarsili/430850e507328181c64334df52a595fa to your computer and use it in GitHub Desktop.
Save simomarsili/430850e507328181c64334df52a595fa to your computer and use it in GitHub Desktop.
Template script reading from input file
"""
Template script with input file.
Use the module docstring as the script description.
Example usage: script.py -a 100 < infile
"""
import sys
from argparse import ArgumentParser, FileType
def parse_args():
"""Command line parser."""
parser = ArgumentParser(description=__doc__)
parser.add_argument('-i', '--infile', nargs='?', type=FileType('r'),
default=sys.stdin)
parser.add_argument('-o', '--outfile', nargs='?', type=FileType('w'),
default=sys.stdout)
parser.add_argument('-a',
'--arg',
type=float,
help='Example argument',
default=None)
return parser.parse_args()
def main():
"""Main script."""
args = vars(parse_args()) # parsed args as a dict
infile = args.pop('infile')
outfile = args.pop('outfile')
print(
'Input file: %r\n'
'Output file: %r\n'
'Arguments: %r' % (infile, outfile, args)
)
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment