У меня есть дюжина программ, которые могут принимать входные данные через 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. Является ли это хорошим последовательным решением или я упускаю из виду что-то лучшее или более ожидаемое?