При написании текстово-ориентированных программ командной строки на Python я часто хочу прочитать либо все файлы, переданные в командной строке, либо стандартный ввод (XOR) (как это делает Unix cat
, либо Perl's <>
).Итак, я говорю
if len(args) == 0: # result from optparse
input = sys.stdin
else:
input = itertools.chain(*(open(a) for a in args))
Это способ Pythonic сделать это, или я пропустил какую-то часть библиотеки?