Python читает из аргументов командной строки или stdin

При написании текстовых программ командной строки на Python я часто хочу прочитать либо все файлы, переданные в командной строке, либо (XOR) стандартный ввод (например, Unix cat делает, или Perl <> ). Итак, я говорю

if len(args) == 0:  # result from optparse
    input = sys.stdin
else:
    input = itertools.chain(*(open(a) for a in args))

Это питонический способ сделать это, или я пропустил какую-то часть библиотеки?

9
задан Marc Mutz - mmutz 21 April 2011 в 15:18
поделиться