«Объединяющая конструкция» звучит так, как будто вы хотите иметь доступ к файлу, представленному в качестве аргумента, или sys.stdin
через одну переменную, так что вы можете просто сказать функциям получить строку из этой вещи, К счастью, sys.stdin
- это просто еще один объект File, поэтому у вас есть одинаковая функциональность с обоими, и это так же просто, как с блоком try / исключением:
try:
from sys import argv
file1 = open(argv[1])
except:
from sys import stdin
file1 = stdin
Вы получите sys.stdin
, если argv [1] находится вне диапазона (IndexError) или не может быть открыт (IOError).
Если вы просто хотите объединить два, используйте file1 = sys.argv[1].open().read() + sys.stdin.read()