Python 3 - E / S de fichiers
Ce chapitre couvre toutes les fonctions d'E / S de base disponibles dans Python 3. Pour plus de fonctions, veuillez vous référer à la documentation Python standard.
Impression à l'écran
Le moyen le plus simple de produire une sortie consiste à utiliser l' instruction print dans laquelle vous pouvez transmettre zéro ou plusieurs expressions séparées par des virgules. Cette fonction convertit les expressions que vous passez en une chaîne et écrit le résultat dans la sortie standard comme suit -
#!/usr/bin/python3
print ("Python is really a great language,", "isn't it?")
Cela produit le résultat suivant sur votre écran standard -
Python is really a great language, isn't it?
Lecture de l'entrée du clavier
Python 2 a deux fonctions intégrées pour lire les données à partir de l'entrée standard, qui par défaut provient du clavier. Ces fonctions sontinput() et raw_input()
Dans Python 3, la fonction raw_input () est obsolète. De plus, les fonctions input () lisent les données du clavier sous forme de chaîne, qu'elles soient placées entre guillemets ('' ou "") ou non.
La fonction d'entrée
le input([prompt]) function équivaut à raw_input, sauf qu'elle suppose que l'entrée est une expression Python valide et vous renvoie le résultat évalué.
#!/usr/bin/python3
>>> x = input("something:")
something:10
>>> x
'10'
>>> x = input("something:")
something:'10' #entered data treated as string with or without ''
>>> x
"'10'"
Ouverture et fermeture de fichiers
Jusqu'à présent, vous lisiez et écriviez sur l'entrée et la sortie standard. Maintenant, nous allons voir comment utiliser les fichiers de données réels.
Python fournit les fonctions et méthodes de base nécessaires pour manipuler les fichiers par défaut. Vous pouvez effectuer la plupart des manipulations de fichiers en utilisant unfile objet.
La fonction ouverte
Avant de pouvoir lire ou écrire un fichier, vous devez l'ouvrir à l'aide de la fonction open () intégrée de Python. Cette fonction crée unfile objet, qui serait utilisé pour appeler d'autres méthodes de support qui lui sont associées.
Syntaxe
file object = open(file_name [, access_mode][, buffering])
Voici les détails des paramètres -
file_name - L'argument nom_fichier est une valeur de chaîne contenant le nom du fichier auquel vous souhaitez accéder.
access_mode- Le access_mode détermine le mode dans lequel le fichier doit être ouvert, c'est-à-dire lire, écrire, ajouter, etc. Une liste complète des valeurs possibles est donnée ci-dessous dans le tableau. Il s'agit d'un paramètre facultatif et le mode d'accès aux fichiers par défaut est read (r).
buffering- Si la valeur de mise en mémoire tampon est définie sur 0, aucune mise en mémoire tampon n'a lieu. Si la valeur de mise en mémoire tampon est 1, la mise en mémoire tampon de ligne est effectuée lors de l'accès à un fichier. Si vous spécifiez la valeur de mise en mémoire tampon sous la forme d'un entier supérieur à 1, l'action de mise en mémoire tampon est exécutée avec la taille de mémoire tampon indiquée. Si négatif, la taille de la mémoire tampon est la valeur par défaut du système (comportement par défaut).
Voici une liste des différents modes d'ouverture d'un fichier -
N ° Sr. | Mode et description |
---|---|
1 | r Ouvre un fichier en lecture seule. Le pointeur de fichier est placé au début du fichier. C'est le mode par défaut. |
2 | rb Ouvre un fichier en lecture uniquement au format binaire. Le pointeur de fichier est placé au début du fichier. C'est le mode par défaut. |
3 | r+ Ouvre un fichier en lecture et en écriture. Le pointeur de fichier placé au début du fichier. |
4 | rb+ Ouvre un fichier pour la lecture et l'écriture au format binaire. Le pointeur de fichier placé au début du fichier. |
5 | w Ouvre un fichier pour l'écriture uniquement. Remplace le fichier si le fichier existe. Si le fichier n'existe pas, crée un nouveau fichier à écrire. |
6 | wb Ouvre un fichier pour l'écriture uniquement au format binaire. Remplace le fichier si le fichier existe. Si le fichier n'existe pas, crée un nouveau fichier à écrire. |
sept | w+ Ouvre un fichier pour l'écriture et la lecture. Remplace le fichier existant si le fichier existe. Si le fichier n'existe pas, crée un nouveau fichier pour la lecture et l'écriture. |
8 | wb+ Ouvre un fichier pour l'écriture et la lecture au format binaire. Remplace le fichier existant si le fichier existe. Si le fichier n'existe pas, crée un nouveau fichier pour la lecture et l'écriture. |
9 | a Ouvre un fichier à ajouter. Le pointeur de fichier est à la fin du fichier si le fichier existe. Autrement dit, le fichier est en mode ajout. Si le fichier n'existe pas, il crée un nouveau fichier à écrire. |
dix | ab Ouvre un fichier à ajouter au format binaire. Le pointeur de fichier est à la fin du fichier si le fichier existe. Autrement dit, le fichier est en mode ajout. Si le fichier n'existe pas, il crée un nouveau fichier à écrire. |
11 | a+ Ouvre un fichier pour l'ajout et la lecture. Le pointeur de fichier est à la fin du fichier si le fichier existe. Le fichier s'ouvre en mode ajout. Si le fichier n'existe pas, il crée un nouveau fichier pour la lecture et l'écriture. |
12 | ab+ Ouvre un fichier pour l'ajout et la lecture au format binaire. Le pointeur de fichier est à la fin du fichier si le fichier existe. Le fichier s'ouvre en mode ajout. Si le fichier n'existe pas, il crée un nouveau fichier pour la lecture et l'écriture. |
Attributs d'objet de fichier
Une fois qu'un fichier est ouvert et que vous avez un objet fichier , vous pouvez obtenir diverses informations relatives à ce fichier.
Voici une liste de tous les attributs liés à un objet fichier -
N ° Sr. | Attribut et description |
---|---|
1 | file.closed Renvoie true si le fichier est fermé, false dans le cas contraire. |
2 | file.mode Renvoie le mode d'accès avec lequel le fichier a été ouvert. |
3 | file.name Renvoie le nom du fichier. |
Note - l'attribut softspace n'est pas pris en charge dans Python 3.x
Exemple
#!/usr/bin/python3
# Open a file
fo = open("foo.txt", "wb")
print ("Name of the file: ", fo.name)
print ("Closed or not : ", fo.closed)
print ("Opening mode : ", fo.mode)
fo.close()
Cela produit le résultat suivant -
Name of the file: foo.txt
Closed or not : False
Opening mode : wb
La méthode close ()
La méthode close () d'un objet fichier vide toutes les informations non écrites et ferme l'objet fichier, après quoi aucune écriture ne peut plus être effectuée.
Python ferme automatiquement un fichier lorsque l'objet de référence d'un fichier est réaffecté à un autre fichier. Il est recommandé d'utiliser la méthode close () pour fermer un fichier.
Syntaxe
fileObject.close();
Exemple
#!/usr/bin/python3
# Open a file
fo = open("foo.txt", "wb")
print ("Name of the file: ", fo.name)
# Close opened file
fo.close()
Cela produit le résultat suivant -
Name of the file: foo.txt
Lecture et écriture de fichiers
L'objet fichier fournit un ensemble de méthodes d'accès pour nous faciliter la vie. On verrait comment utiliserread() et write() méthodes pour lire et écrire des fichiers.
La méthode write ()
le write()La méthode écrit n'importe quelle chaîne dans un fichier ouvert. Il est important de noter que les chaînes Python peuvent avoir des données binaires et pas seulement du texte.
La méthode write () n'ajoute pas de caractère de nouvelle ligne ('\ n') à la fin de la chaîne -
Syntaxe
fileObject.write(string);
Ici, le paramètre passé est le contenu à écrire dans le fichier ouvert.
Exemple
#!/usr/bin/python3
# Open a file
fo = open("foo.txt", "w")
fo.write( "Python is a great language.\nYeah its great!!\n")
# Close opend file
fo.close()
La méthode ci-dessus créerait un fichier foo.txt et écrirait le contenu donné dans ce fichier et finalement fermerait ce fichier. Si vous ouvrez ce fichier, il aura le contenu suivant -
Python is a great language.
Yeah its great!!
La méthode read ()
le read()La méthode lit une chaîne à partir d'un fichier ouvert. Il est important de noter que les chaînes Python peuvent avoir des données binaires. en dehors des données textuelles.
Syntaxe
fileObject.read([count]);
Ici, le paramètre passé est le nombre d'octets à lire dans le fichier ouvert. Cette méthode commence la lecture à partir du début du fichier et si le nombre est manquant, elle essaie de lire autant que possible, peut-être jusqu'à la fin du fichier.
Exemple
Prenons un fichier foo.txt , que nous avons créé ci-dessus.
#!/usr/bin/python3
# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print ("Read String is : ", str)
# Close opened file
fo.close()
Cela produit le résultat suivant -
Read String is : Python is
Positions des fichiers
La méthode tell () vous indique la position actuelle dans le fichier; en d'autres termes, la prochaine lecture ou écriture se produira à ce nombre d'octets à partir du début du fichier.
La méthode de recherche (offset [, from]) modifie la position actuelle du fichier. leoffsetL'argument indique le nombre d'octets à déplacer. lefrom L'argument spécifie la position de référence à partir de laquelle les octets doivent être déplacés.
Si from est défini sur 0, le début du fichier est utilisé comme position de référence. S'il est défini sur 1, la position actuelle est utilisée comme position de référence. S'il est défini sur 2, la fin du fichier sera prise comme position de référence.
Exemple
Prenons un fichier foo.txt , que nous avons créé ci-dessus.
#!/usr/bin/python3
# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print ("Read String is : ", str)
# Check current position
position = fo.tell()
print ("Current file position : ", position)
# Reposition pointer at the beginning once again
position = fo.seek(0, 0)
str = fo.read(10)
print ("Again read String is : ", str)
# Close opened file
fo.close()
Cela produit le résultat suivant -
Read String is : Python is
Current file position : 10
Again read String is : Python is
Renommer et supprimer des fichiers
Python os module fournit des méthodes qui vous aident à effectuer des opérations de traitement de fichiers, telles que le changement de nom et la suppression de fichiers.
Pour utiliser ce module, vous devez d'abord l'importer, puis vous pouvez appeler toutes les fonctions associées.
La méthode rename ()
le rename() La méthode prend deux arguments, le nom de fichier actuel et le nouveau nom de fichier.
Syntaxe
os.rename(current_file_name, new_file_name)
Exemple
Voici un exemple pour renommer un fichier existant test1.txt -
#!/usr/bin/python3
import os
# Rename a file from test1.txt to test2.txt
os.rename( "test1.txt", "test2.txt" )
La méthode remove ()
Vous pouvez utiliser le remove() pour supprimer des fichiers en fournissant le nom du fichier à supprimer comme argument.
Syntaxe
os.remove(file_name)
Exemple
Voici un exemple pour supprimer un fichier test2.txt existant -
#!/usr/bin/python3
import os
# Delete file test2.txt
os.remove("text2.txt")
Répertoires en Python
Tous les fichiers sont contenus dans divers répertoires et Python n'a aucun problème à les gérer. leos module a plusieurs méthodes qui vous aident à créer, supprimer et modifier des répertoires.
La méthode mkdir ()
Vous pouvez utiliser le mkdir() méthode de la osmodule pour créer des répertoires dans le répertoire courant. Vous devez fournir un argument à cette méthode, qui contient le nom du répertoire à créer.
Syntaxe
os.mkdir("newdir")
Exemple
Voici un exemple pour créer un test de répertoire dans le répertoire courant -
#!/usr/bin/python3
import os
# Create a directory "test"
os.mkdir("test")
La méthode chdir ()
Vous pouvez utiliser la méthode chdir () pour changer le répertoire courant. La méthode chdir () prend un argument, qui est le nom du répertoire que vous voulez faire du répertoire courant.
Syntaxe
os.chdir("newdir")
Exemple
Voici un exemple pour aller dans le répertoire "/ home / newdir" -
#!/usr/bin/python3
import os
# Changing a directory to "/home/newdir"
os.chdir("/home/newdir")
La méthode getcwd ()
le getcwd() La méthode affiche le répertoire de travail actuel.
Syntaxe
os.getcwd()
Exemple
Voici un exemple pour donner le répertoire courant -
#!/usr/bin/python3
import os
# This would give location of the current directory
os.getcwd()
La méthode rmdir ()
le rmdir() La méthode supprime le répertoire, qui est passé en argument dans la méthode.
Avant de supprimer un répertoire, tout son contenu doit être supprimé.
Syntaxe
os.rmdir('dirname')
Exemple
Voici un exemple pour supprimer le répertoire "/ tmp / test". Il est nécessaire de donner le nom complet du répertoire, sinon il rechercherait ce répertoire dans le répertoire courant.
#!/usr/bin/python3
import os
# This would remove "/tmp/test" directory.
os.rmdir( "/tmp/test" )
Méthodes liées aux fichiers et aux répertoires
Il existe trois sources importantes, qui fournissent un large éventail de méthodes utilitaires pour gérer et manipuler les fichiers et répertoires sur les systèmes d'exploitation Windows et Unix. Ils sont les suivants -
Méthodes d'objet fichier
le file object fournit des fonctions pour manipuler les fichiers.
Méthodes d'objets OS
Cela fournit des méthodes pour traiter les fichiers ainsi que les répertoires.