From 5b2cead52762137fdad252bcbedfc22856028a2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Beraud?= Date: Fri, 22 Feb 2019 17:35:47 +0100 Subject: [PATCH] Pass stdin and stdout are default arguments to argpars infile/outfile Argparse can handle default value as stdin and stdout for parameters as file type (infile, outfile). --- Lib/json/tool.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Lib/json/tool.py b/Lib/json/tool.py index 1d82bc82423670..b3ef9923e31469 100644 --- a/Lib/json/tool.py +++ b/Lib/json/tool.py @@ -21,17 +21,19 @@ def main(): 'to validate and pretty-print JSON objects.') parser = argparse.ArgumentParser(prog=prog, description=description) parser.add_argument('infile', nargs='?', type=argparse.FileType(), - help='a JSON file to be validated or pretty-printed') + help='a JSON file to be validated or pretty-printed', + default=sys.stdin) parser.add_argument('outfile', nargs='?', type=argparse.FileType('w'), - help='write the output of infile to outfile') + help='write the output of infile to outfile', + default=sys.stdout) parser.add_argument('--sort-keys', action='store_true', default=False, help='sort the output of dictionaries alphabetically by key') parser.add_argument('--json-lines', action='store_true', default=False, help='parse input using the jsonlines format') options = parser.parse_args() - infile = options.infile or sys.stdin - outfile = options.outfile or sys.stdout + infile = options.infile + outfile = options.outfile sort_keys = options.sort_keys json_lines = options.json_lines with infile, outfile: