Questo modulo implementa una classe ed alcune funzioni utili per scrivere rapidamente un ciclo che operi sullo standard input o su una lista di file.
L'utilizzo tipico � il seguente:
import fileinput
for line in fileinput.input():
process(line)
In questo esempio, si itera sulle righe di tutti i file elencati in
sys.argv[1:], utilizzando sys.stdin se la lista degli
argomenti � vuota. Se il nome di un file passato � '-', viene
anch'esso rimpiazzato da sys.stdin. Per specificare una lista alternativa di
nomi di file, passatela come primo argomento di
input(). È permesso usare anche un singolo nome di file.
Tutti i file vengono aperti in modalit� testo. Se si verifica un errore di I/O durante l'apertura o la lettura di un file, viene sollevata un'eccezione IOError.
Se sys.stdin viene utilizzato pi� di una volta, dopo il primo utilizzo non
verr� pi� restituita alcuna riga, eccetto forse per la modalit�
interattiva, o se � stato esplicitamente reimpostato (es.: usando
sys.stdin.seek(0)).
I file vuoti vengono aperti ed immediatamente chiusi; si pu� constatare la presenza di questi file nella lista solo quando l'ultimo file aperto � vuoto.
È possibile che l'ultima riga di un file non termini con il carattere di fine riga; le righe vengono restituite insieme al carattere di fine riga terminale, se presente.
La seguente funzione � l'interfaccia base di questo modulo:
| [files[, inplace[, backup]]]) |
Le seguenti funzioni utilizzano lo stato globale creato da input(); se non � presente uno stato attivo, viene sollevata un'eccezione RuntimeError.
| ) |
None.
| ) |
0. Dopo che � stata letta l'ultima riga
dell'ultimo file, restituisce il numero di quella riga.
| ) |
0. Dopo la lettura
dell'ultima riga dell'ultimo file, restituisce il numero di quella riga
all'interno di quel file.
| ) |
| ) |
sys.stdin,
altrimenti restituisce false.
| ) |
| ) |
Anche la classe che implementa il comportamento sequenziale fornito dal modulo � disponibile per poter essere derivata:
| [files[, inplace[, backup]]]) |
Filtro opzionale sul posto: se alla funzione
input() o al costruttore di FileInput viene passato
l'argomento a parola chiave inplace=1, il file viene spostato in un altro
file di backup e lo standard output viene diretto al file di input (se un
file dello stesso nome del file di backup gi� esiste, verr�
sovrascritto senza sollevare eccezioni). Questo rende possibile
scrivere un filtro che riscrive il suo file di input sul posto.
Passando anche l'argomento a parola chiave
backup='.<qualche estensione>', si specifica l'estensione
che deve avere il file di backup, facendo s� che questo file di backup
non venga cancellato; infatti l'estensione predefinita dei file di backup � '.bak',
ed essi vengono cancellati dopo la chiusura del file di output.
Il filtraggio sul posto viene disabilitate durante la lettura da standard input.
Avvertenze: L'implementazione corrente non funziona con il filesystem 8+3 di MS-DOS.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.