Ce module implémente une classe d'aide et des fonctions pour écrire rapidement une boucle sur l'entrée standard ou une liste de fichiers.
L'utilisation typique est:
import fileinput
for ligne in fileinput.input():
process(ligne)
Ceci provoque une itération sur les lignes de tous les fichiers listés
dans sys.argv[1:], avec une valeur par défaut de sys.stdin si
la liste est vide. Si un nom de fichier vaut '-', il est aussi remplacé
par sys.stdin. Pour spécifier une autre liste de fichiers, il faut la
passer en premier argument à input(). Un nom de fichier unique est
aussi autorisé.
Tous les fichiers sont ouverts en mode texte. Si une erreur d'entrée/sortie se produit à l'ouverture ou à la lecture d'un fichier, IOError est déclenchée.
Si sys.stdin est utilisé plus d'une fois, la seconde utilisation et
les suivantes ne retourneront pas de ligne, sauf peut-être en utilisation
interactive, ou si l'entrée standard a été explicitement réinitialisée
(par exemple par sys.stdin.seek(0)).
Les fichiers vides sont ouverts et fermés immédiatement; la seule fois où on s'aperçoit de leur présence dans la liste des noms de fichiers est quand le dernier fichier ouvert est vide.
Il est possible que la dernière ligne d'un fichier ne se termine pas par un caractère de retour à la ligne; les lignes sont retournées en incluant le caractère de retour à la ligne quand il est présent en fin de ligne.
La fonction suivante constitue l'interface principale de ce module:
Les fonctions suivantes utilisent l'état global créé par input(); s'il n'y a pas d'état actif, RuntimeError est déclenchée.
None.
0. Après que la
dernière ligne du dernier fichier a été lue, retourne le numéro
de cette ligne.
0. Après que la dernière ligne du dernier
fichier a été lue, retourne le numéro de cette ligne dans le fichier.
sys.stdin,
sinon retourne faux.
La classe qui implémente le comportement de la séquence fournie par ce module peut aussi être surclassée:
Filtrage sur place optionnel: si l'argument
surplace=1 est passé à input() ou au constructeur
de FileInput, le fichier est déplacé dans un fichier de sauvegarde
et la sortie standard est dirigée vers le fichier d'entrée. Cela permet
d'écrire un filtre qui réécrit son fichier d'entrée sur place. Si
l'argument sauvegarde='.<extension quelconque>' est également
fourni, il spécifie l'extension à donner au fichier de sauvegarde, et le fichier
de sauvegarde est conservé; par défaut, l'extension est '.bak' et il est
détruit quand le fichier de sortie est fermé. Le filtrage sur place est désactivé
quand on lit sur l'entrée standard.
Attention: L'implémentation actuelle ne fonctionne pas avec le système de fichiers MS-DOS 8+3.