Comment créer un fichier via Python

Toute donnée créée par l’utilisateur (et/ou l’application) et qui est destinée à être réutilisée pendant plus d’une session doit être sauvegardée sur un support permanent quelconque. Créer un fichier, puis y placer les données voulues est donc une part essentielle du travail avec Python. Vous pouvez utiliser les étapes qui suivent pour créer le code qui va écrire les données sur le disque dur. Cet exemple est également disponible dans les fichiers téléchargeables FormattedData.py et CreateCSV.py.

À nouveau, je vous conseille de travailler sur une nouvelle copie du dossier Code\Chapitre15.

  1. Ouvrez une fenêtre de fichier Python et chargez-y le fichier FormattedData.py.
    Vous devriez retrouver le code créé dans la section précédente. Dans ce qui suit, nous allons le modifier de manière à ce que la classe puisse maintenant sauvegarder un fichier sur le disque.
  2. Ajoutez l’instruction import suivante tout au début du fichier :
    [import csv]
    Le module csv de Python contient tout ce qu’il faut pour travailler avec les fichiers CSV.
    Python supporte nativement un grand nombre de types de fichiers, et il existe également des bibliothèques provenant de sources externes. En cas de besoin, vous devriez donc trouver votre bonheur soit directement dans Python, soit en faisant une recherche sur le Web. Malheureusement, il n’existe pas de liste claire sur les types de fichiers supportés. Vous pouvez le cas échéant consulter les adresses suivantes : https://docs.python.org/fr/3/library/archiving.html (formats d’archives) et https://docs.python.org/fr/3/library/fileformats.html (formats de fichiers).
  3. Tapez le code suivant à la fin du fichier en appuyant sur Entrée à la fin de chaque ligne :
    [import csv def SaveData(Filename = "", DataList = [ ]): with open(Filename, "w", newline='\n') as csvfile: DataWriter = csv.writer( csvfile, delimiter='\n', quotechar=" ", quoting=csv.QUOTE_NONNUMERIC) DataWriter.writerow(DataList) csvfile.close() print("Données enregistrées !")]
    Assurez-vous absolument que SaveData () est correctement indentée. Si vous ajoutez SaveData(), mais que cette méthode n’est pas indentée comme il faut sous la classe FormatData, Python considérera qu’il s’agit d’une fonction indépendante de cette classe. La manière la plus simple de s’y prendre consiste à suivre la même indentation que pour les fonctions __init__() et __str__().
    Remarquez que la méthode accepte deux arguments en entrée : le nom du fichier utilisé pour sauvegarder les données, et une liste d’éléments à enregistrer. Il s’agit ici d’une méthode de classe, et non d’une méthode d’instance. Vous verrez plus loin en quoi cette façon de procéder est un avantage. Par défaut, l’argument DataList est vide. De cette manière, la méthode ne provoquera pas d’exception si l’appelant ne lui passe rien. Bien entendu, il serait possible d’ajouter du code pour traiter le cas d’une liste vide considérée comme une erreur.
    L’instruction with demande à Python d’effectuer une série de tâches à partir d’une ressource spécifique, en l’occurrence un fichier ouvert de type csvfile, et appelé TestFile.csv. La fonction open() accepte différentes entrées selon la manière dont vous l’utilisez. Ici, vous l’ouvrez en mode écriture (signifié par la lettre w, pour write). L’attribut newline indique à Python qu’il doit traiter le caractère de contrôle \n comme un saut de ligne.
    Pour écrire la sortie, vous avez besoin d’un objet particulier. Ici, l’objet DataWriter est configuré pour utiliser le type de fichier csvfile, pour définir \n comme délimiteur, marquer les éléments par un espace, et utiliser des apostrophes uniquement avec les valeurs non numériques. À ce stade, nous supposons que c’est exactement ce dont vous avez besoin pour rendre votre sortie utilisable.
    En fait, écrire des données demande moins d’efforts que ce que vous pourriez croire. Un simple appel à DataWriter.writerow() avec DataList en entrée est tout ce dont vous avez besoin. Refermez toujours vos fichiers lorsque vous n’en avez plus besoin. Cette action vide les données sur le disque dur en s’assurant qu’elles sont bien écrites. Le code se termine en vous informant que l’opération s’est déroulée avec succès.
  4. Sauvegardez ce code sous le nom de FormattedData.py.
    Si vous vous servez du fichier téléchargeable, ne sauvegardez pas cette version allégée de FormattedData.py dans le dossier BP4D\Chapitre15 ! Vous écraseriez purement et simplement la version originale. N’oubliez pas de faire au préalable une copie de travail de ce dossier afin de ne rien perdre (ou plutôt de vous éviter d’avoir à faire les saisies qui suivront à la main…).
  5. Ouvrez une autre fenêtre de fichier de Python.
  6. Tapez le code suivant en appuyant sur Entrée à la fin de chaque ligne :
    [from FormattedData import FromatFata NewData = [FormatData("阿当", 65, True), FormatData("用勺", 47,False), FormatData("认个", 52, True)] FormatData.SaveData("TestFile.csv", NewData)]
    Cet exemple ressemble à celui de la section précédente. Cependant, au lieu de vous contenter d’afficher le contenu des données, vous l’enregistrez dans un fichier en appelant FormatData. SaveData (). C’est l’une des situations où l’emploi d’une méthode d’instance n’aurait pas d’intérêt particulier, puisque cela vous obligerait en plus à créer une instance de FormatData qui ne pourrait rien faire de plus pour vous.
  7. Choisissez la commande Run Module dans le menu Run.
    Une fenêtre Python en mode Shell va s’ouvrir. Un simple message vous indique le succès de l’opération. Bien entendu, ce message ne vous dit rien sur vos données. Vous savez simplement que votre nouveau fichier se trouve dans le même dossier que votre code, et qu’il s’appelle TestFile.csv. La plupart des plates-formes disposent d’une application par défaut pour ouvrir ce type de fichier. Dans le cas de Windows, il s’agit généralement de Microsoft Excel, ou encore de WordPad (parmi d’autres). Les Figures illustrent ces deux cas. À chaque fois, la sortie ressemble étonnamment à celle de la Figure.
    Figure : La sortie de l’application telle qu’elle apparaît dans Excel (avec le cas échéant un peu de remise en forme).

    Figure : La sortie de l’application telle qu’elle apparaît dans NotePad++.

Créer lire et écrire dans un fichier en python

Une manière de stocker des données de manière pérenne est de les stocker dans des fichiers.

Editer un fichier

Pour éditer un fichier en python on utilise la fonction open .

Cette fonction prend en premier paramètre le chemin du fichier (relatif ou absolu) et en second paramètre le type d'ouverture

Chemin relatif / chemin absolu

Un chemin relatif en informatique est un chemin qui prend en compte l'emplacement de lecture.

Un chemin absolu est un chemin complet qui peut être lu quelque soit l'emplacement de lecture.

La fonction open

Voici la syntaxe pour lire un fichier

>>> fichier = open("data.txt", "r")
>>> print fichier
<open file 'data.txt', mode 'r' at 0x7ff6cf3fe4b0>

On remarque que le deuxième paramètre est renseigné par un r , ce paramètre indique une ouverture de fichier en lecture .

Les types d'ouverture

Il existe plusieurs modes d'ouverture:

r, pour une ouverture en lecture (READ).
w, pour une ouverture en écriture (WRITE), à chaque ouverture le contenu du fichier est écrasé. Si le fichier n'existe pas python le crée.
a, pour une ouverture en mode ajout à la fin du fichier (APPEND). Si le fichier n'existe pas python le crée.
b, pour une ouverture en mode binaire.
t, pour une ouverture en mode texte.
x, crée un nouveau fichier et l'ouvre pour écriture

Fermeture d'un fichier

Comme tout élément ouvert, il faut le refermer une fois les instructions terminées. Pour cela on utilise la méthode close() .

>>> fichier.close()

Lire le contenu d'un fichier

Pour afficher tout le contenu d'un fichier, vous pouvez utiliser la méthode read sur l'objet-fichier.

# coding: utf-8

fichier = open("data.txt", "r")
print fichier.read()
fichier.close()

Ecrire dans un fichier

Voici la syntaxe pour écrire dans un fichier:

fichier = open("data.txt", "a")
fichier.write("Bonjour monde")
fichier.close()

A noter que pour le monde d'ouverture a , si vous voulez écrire à la ligne, vous pouvez utiliser le saut de ligne \n :

fichier = open("data.txt", "a")
fichier.write("\nBonjour monde")
fichier.close()

Le mot clé with

Il existe une autre syntaxe plus courte qui permet de s'emanciper du problème de fermeture du fichier: le mot clé with .

Voici la syntaxe:

with open("data.txt", "r") as fichier:
	print fichier.read()

Nmap

"mmap" est une bibliothèque Python qui permet de mapper des fichiers ou des segments de mémoire en Python. Elle fournit une interface qui ressemble à celle de tableaux Python, ce qui permet d'accéder aux données du fichier ou du segment de mémoire comme s'il s'agissait d'un tableau Python.

L'utilisation de "mmap" peut être une approche plus efficace pour accéder aux données d'un fichier ou d'un segment de mémoire que l'utilisation de fonctions de lecture et d'écriture standard, car elle permet de mapper le fichier ou le segment de mémoire en mémoire et d'accéder aux données de manière directe, sans passer par l'overhead de l'interpréteur Python. Cela peut être particulièrement utile pour traiter de grandes quantités de données ou pour accéder à des données de manière répétée.

Voici comment utiliser "mmap" pour lire un fichier en Python :

[import mmap # Ouvre le fichier en mode lecture et récupère sa taille with open('mon_fichier.txt', 'r') as f: size = f.seek(0, 2) f.seek(0) # Crée un objet mmap à partir du fichier mm = mmap.mmap(f.fileno(), size) # Lit le contenu du fichier à l'aide de l'objet mmap contents = mm.read() # Affiche le contenu du fichier print(contents)]

Enregistrer un commentaire

Bienvenue ! Laissez un commentaire ! Votre avis nous intéresse.
Oups !
Il semble qu'il y ait un problème avec votre connexion Internet. Veuillez vous connecter à Internet et relancer la navigation.
Site is Blocked
Sorry! This site is not available in your country.