Python - E / S de fichiers

Ce chapitre couvre toutes les fonctions d'E / S de base disponibles en Python. 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/python

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 fournit deux fonctions intégrées pour lire une ligne de texte à partir d'une entrée standard, qui par défaut provient du clavier. Ces fonctions sont -

  • raw_input
  • input

La fonction raw_input

La fonction raw_input ([prompt]) lit une ligne à partir de l'entrée standard et la renvoie sous forme de chaîne (en supprimant la nouvelle ligne de fin).

#!/usr/bin/python

str = raw_input("Enter your input: ")
print "Received input is : ", str

Cela vous invite à entrer une chaîne et elle affichera la même chaîne à l'écran. Quand j'ai tapé "Hello Python!", Sa sortie est comme ceci -

Enter your input: Hello Python
Received input is :  Hello Python

La fonction d' entrée

La fonction input ([prompt]) est équivalente à raw_input, sauf qu'elle suppose que l'entrée est une expression Python valide et vous renvoie le résultat évalué.

#!/usr/bin/python

str = input("Enter your input: ")
print "Received input is : ", str

Cela produirait le résultat suivant par rapport à l'entrée entrée -

Enter your input: [x*5 for x in range(2,10,2)]
Recieved input is :  [10, 20, 30, 40]

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. Modes 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.

Le fichier des attributs d'objet

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 à l'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.

4

file.softspace

Renvoie false si l'espace est explicitement requis avec print, true sinon.

Exemple

#!/usr/bin/python

# 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
print "Softspace flag : ", fo.softspace

Cela produit le résultat suivant -

Name of the file:  foo.txt
Closed or not :  False
Opening mode :  wb
Softspace flag :  0

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/python

# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name

# Close opend 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. Nous verrons comment utiliser les méthodes read () et write () pour lire et écrire des fichiers.

La méthode write ()

La méthode write () é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/python

# Open a file
fo = open("foo.txt", "wb")
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 ()

La méthode read () 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/python

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10);
print "Read String is : ", str
# Close opend 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. L' argument offset indique le nombre d'octets à déplacer. L' argument from 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, cela signifie utiliser le début du fichier comme position de référence et 1 signifie utiliser la position actuelle comme position de référence et 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/python

# 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 opend 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 ()

La méthode rename () 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 l'exemple pour renommer un fichier existant test1.txt -

#!/usr/bin/python
import os

# Rename a file from test1.txt to test2.txt
os.rename( "test1.txt", "test2.txt" )

La méthode remove ()

Vous pouvez utiliser la méthode remove () pour supprimer des fichiers en fournissant le nom du fichier à supprimer comme argument.

Syntaxe

os.remove(file_name)

Exemple

Voici l'exemple pour supprimer un fichier existant test2.txt -

#!/usr/bin/python
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 la méthode mkdir () duosmodule 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 l'exemple pour créer un test de répertoire dans le répertoire courant -

#!/usr/bin/python
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 l'exemple pour aller dans le répertoire "/ home / newdir" -

#!/usr/bin/python
import os

# Changing a directory to "/home/newdir"
os.chdir("/home/newdir")

Le getcwd () Méthode

La méthode getcwd () affiche le répertoire de travail actuel.

Syntaxe

os.getcwd()

Exemple

Voici l'exemple pour donner le répertoire courant -

#!/usr/bin/python
import os

# This would give location of the current directory
os.getcwd()

La méthode rmdir ()

La méthode rmdir () 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 l'exemple de suppression du 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/python
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 -