Последовательный способ перенаправления stdin и stdout в файлы в python с помощью optparse

У меня есть дюжина программ, которые могут принимать входные данные через stdin или опции, и я хотел бы реализовать те же функции аналогичным образом для вывода.

Код optparse выглядит так:

parser.add_option('-f', '--file',
       default='-',
       help='Specifies the input file.  The default is stdin.')
parser.add_option('-o', '--output',
       default='-',
       help='Specifies the output file.  The default is stdout.')

Остальной применимый код выглядит так:

if opts.filename == '-':
    infile = sys.stdin
else:
    infile = open(opts.filename, "r")

if opts.output == '-':
    outfile = sys.stdout
else:
    outfile = open(opts.output, "w")

Этот код работает хорошо, и мне нравится его простота - но я не смог найти упоминания о том, что кто-то использует значение по умолчанию '-' для вывода, чтобы указать stdout. Является ли это хорошим последовательным решением или я упускаю из виду что-то лучшее или более ожидаемое?

13
задан KenFar 22 October 2011 в 22:18
поделиться