« construction Unifying » sonne comme vous voulez être en mesure d'accéder soit un fichier fourni comme argument ou sys.stdin
à travers une variable, de sorte que vous pouvez simplement dire des fonctions pour obtenir une ligne de cette chose. Heureusement, sys.stdin
est juste un autre objet fichier, vous avez donc exactement les mêmes fonctionnalités à la fois et il est aussi facile que d'essayer/except:
try:
from sys import argv
file1 = open(argv[1])
except:
from sys import stdin
file1 = stdin
Vous obtiendrez sys.stdin
si argv [1] est hors de portée (IndexError) ou ne peut pas être ouvert (IOError).
Si vous voulez juste concaténer les deux, utilisez file1 = sys.argv[1].open().read() + sys.stdin.read()
'Ce itère sur les lignes de tous les fichiers répertoriés dans sys.argv [1:], par défaut sys.stdin si la liste est vide. Si un nom de fichier est '-', il est également remplacé par sys.stdin.' - http://docs.python.org/2/library/fileinput.html – n611x007