Quand une opération sur les fichiers échoue, pour une cause relative aux entrées/sorties,
l'exception IOError est levée. Ceci comprend les situations
pour lesquelles l'opération n'est pas définie, pour diverses raisons.
Par exemple lors de l'utilisation de la méthode seek() sur un
périphérique tty ou encore lors d'une opération d'écriture sur un fichier
ouvert en lecture.
Les fichiers possèdent les méthodes suivantes:
fileclose()
-
Ferme le fichier. Un fichier fermé ne peut plus être lu ou écrit.
fileflush()
-
Vide le buffer interne, comme la fonction fflush() de
stdio.
fileisatty()
-
Retourne
1 si le fichier est connecté à un périphérique de type tty,
sinon retourne 0.
filefileno()
-
Retourne l'entier ``descripteur de fichier'' qui est utilisé par les
couches inférieures du système d'exploitation. Cette valeur peut être
utilisée pour d'autres fonctions de bas niveau, telles que dans le module
fcntl ou les fonctions os.read() et autres.
fileread([longueur])
-
Lit au moins longueur octets du fichier (il peut y en avoir moins si
le caractère EOF est lu avant d'atteindre longueur). Si l'argument
longueur est négatif ou bien absent, toutes les données sont lues
jusqu'à EOF. Les octets sont retournés sous forme d'un objet chaîne de
caractères. Une chaîne vide est retournée quand EOF est rencontré le
premier (pour certains types de fichiers, tels les ttys, il est raisonnable
de continuer à lire même après le retour d'un EOF). Il faut noter que la
fonction C fread() peut être appelée plusieurs fois pour atteindre
le nombre longueur d'octets demandés.
filereadline([taille])
-
Lit une ligne entière du fichier. Le caractère retour-chariot en fin de ligne
est conservé1
mais il peut aussi être absent dans le cas où le fichier se termine par une ligne
incomplète.
Si l'argument taille est présent et non-négatif, il indique le nombre
maximum d'octets à lire (y compris le retour-chariot de fin) et une ligne
incomplète peut alors être retournée.
Une chaîne vide est retournée si EOF est rencontré comme premier caractère.
Note: Contrairement à la fonction fgets() de
stdio,
la chaîne retournée peut contenir des caractères nuls ('\0') si
ceux-ci se trouvent dans le fichier.
filereadlines([longueur])
-
Lit l'entrée jusqu'à EOF, en utilisant readline() et retourne
une liste contenant les lignes lues. Si l'argument optionnel longueur
est présent, les lignes sont lues jusqu'à un total de longueur octets,
sans se soucier de EOF. Cette longueur peut être approximative en ce
sens qu'elle dépend de valeurs internes de taille de buffer.
fileseek(offset[, positionnement])
-
Fixe la position du curseur dans le fichier lu, comme la fonction
fseek() de
stdio.
L'argument optionnel positionnement (par défaut 0, c'est à dire
position absolue dans le fichier) peut prendre les valeurs 0, 1
(déplacement relatif à la position précédente), ou 2 (positionnement
relatif à la fin de fichier). Il n'y a pas de valeur de retour.
filetell()
-
Retourne la position courante du curseur dans le fichier,
comme ftell() de
stdio.
filetruncate([longueur])
-
Réduit la taille du fichier. Si l'argument longueur est présent, le fichier
est tronqué à (au plus) cette taille ; par défaut la longueur correspond à la
position courante. Cette fonction est disponible ou pas selon la version du
système d'exploitation (par exemple, toutes les versions d'Unix ne la
supportent pas)
filewrite(str)
-
Ecrit un chaîne de caractères dans le fichier. Il n'y a pas de valeur de
retour. Note: A cause de l'utilisation d'un buffer, la chaîne peut ne pas
être vraiment dans le fichier avant une commande flush() ou
close().
filewritelines(list)
-
Ecrit une liste de chaîne de caractères dans le fichier. Il n'y a pas de valeur
de retour (cette méthode est le miroir de readlines()).
Aucun séparateur de ligne n'est ajouté par writelines().
Les objets fichiers possèdent également les attributs suivants:
fileclosed-
Attribut booléen en lecture seule, indique l'état de l'objet fichier.
La méthode close() change sa valeur.
filemode-
Mode d'entrée/sortie du fichier, si le fichier est créé avec la fonction intégrée
open() l'attribut existe et possède la valeur passée. Cet
attribut est en lecture seule.
filename-
Si le fichier est créé avec open(), l'attribut en lecture seule
contient le nom du fichier. Sinon, il contient une chaîne de caractères
indiquant l'origine de l'objet fichier, de la forme "<...>".
filesoftspace-
Booléen indiquant si un espace doit être imprimé avant toute autre valeur
lors de l'utilisation de print.
Les classes qui simulent un objet fichier doivent avoir un attribut
softspace accessible en écriture, et initialisé à zéro.
Ceci est automatique pour les classes implémentées en Python, mais les
types implémentés en C doivent veiller à fournir cet attribut softspace
en écriture.
Notes
- 1
-
Un des avantages de conserver ce caractère retour-chariot est de signaler sans
ambiguïté qu'une chaîne de caractères vide signifie EOF. Un autre avantage, pour le cas où
ceci serait utile, par exemple pour recopier exactement un fichier sans passer
les lignes en revue, est qu'on peut savoir si la dernière ligne d'un
fichier se termine ou non par un retour-chariot (les deux cas existent!).