При написании текстовых программ командной строки на 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))
Это питонический способ сделать это, или я пропустил какую-то часть библиотеки?