Python

module de fichier temporaire Python

module de fichier temporaire Python
Souvent dans nos programmes, nous devons stocker des informations temporaires sur l'état du programme et des objets qui pourraient ou non vivre au-delà de l'état du programme lui-même. Les données qui sont enregistrées dans ces fichiers peuvent ne pas être sous une forme lisible par l'homme ou même sous une forme qui peut être utilisée par n'importe qui, mais certains programmes, algorithmes ou pirates peuvent trouver un moyen d'extraire des informations de ces données, ce qui peut sacrifier le sécurité du système. Nous devons donc créer une logique qui crée ces fichiers, écrire des données, puis supprimer également les fichiers. Et s'il y avait quelque chose qui fait abstraction de tant d'opérations dans notre programme? On dirait qu'il y a un module en Python pour le même, le fichier temporaire module.

Exemples avec le module tempfile

Nous allons commencer par des exemples simples avec le Python fichier temporaire module ici.

Création de fichiers temporaires

La première chose nécessaire pour enregistrer les données temporaires est les fichiers où nous pouvons stocker ces données. Cela peut être fait en utilisant le Fichier temporaire() une fonction. Le plus gros avantage de cette fonction est que lorsqu'un fichier est créé avec cette fonction, aucun lien vers ce fichier n'est fait dans le système de fichiers du système et donc, il n'est pas possible pour d'autres processus d'accéder à ces fichiers.

Regardons un programme simple qui utilise les Fichier temporaire() une fonction:

importer le système d'exploitation
importer le fichier temporaire
# Utilisation du PID dans le nom du fichier pour une meilleure identification
fichier = '/tmp/linuxhint_%s.txt' % os.getpid()
# Fournir le mode Fichier
fichier_temp = open(fichier, 'w+b')
essayer:
print('fichier_temp : 0'.format(fichier_temp))
print('fichier_temp.nom : 0'.format(fichier_temp.Nom))
finalement:
fichier_temp.Fermer()
# Supprimer le fichier temporaire nous-mêmes
système d'exploitation.effacer le fichier)
print('Métadonnées du fichier temporaire :')
fichier_temp = fichier_temp.Fichier temporaire()
essayer:
print('fichier_temp : 0'.format(fichier_temp))
print('fichier_temp.nom : 0'.format(fichier_temp.Nom))
finalement:
# Nettoie le fichier lorsque close est appelé
fichier_temp.Fermer()

Voici ce que nous obtenons avec cette commande :

Création d'un fichier temporaire

Ce fichier est supprimé dès que le Fermer() la fonction est appelée sur le fichier temporaire référence.

Lecture à partir d'un fichier temporaire

Même la lecture à partir d'un fichier temporaire est facile et peut être effectuée en un seul appel de méthode dans le même module. L'avantage de cette fonction est que cela nous aide à éviter les opérations d'E/S complexes impliqué si nous devons faire ces opérations manuellement. Voici un programme montrant cette fonction en action :

importer le système d'exploitation
importer le fichier temporaire
fichier_temp = fichier_temp.Fichier temporaire()
essayer:
print('Écriture des données dans le fichier temporaire :')
fichier temporaire.écrire (b'Toutes les données peuvent aller ici.')
fichier temporaire.chercher(0)
print('Lecture du fichier temporaire du formulaire de données : \n\t0'.format(fichier temporaire.lis()))
finalement:
fichier temporaire.Fermer()

Voyons le résultat de cette commande :

Python lu à partir d'un fichier temporaire

Tout le texte des fichiers temporaires a été renvoyé avec un seul appel de méthode.

Écriture de texte brut dans un fichier temporaire

Dans nos programmes ci-dessus, toutes les données écrites dans les fichiers n'étaient pas sous la forme d'un simple format de texte brut. Si nous voulons le faire pour des opérations de texte simples, nous pouvons simplement modifier le mode de fichier lorsque nous ouvrons le fichier temporaire pour les modifications :

importer le fichier temporaire
ModeFichier = 'w+t'
avec fichier temporaire.TemporaryFile(mode=fileMode) en tant que fichier :
déposer.writelines(['Linux\n', 'Ubuntu\n'])
déposer.chercher(0)
pour l'élément dans le fichier :
imprimer (élément.rstrip())

Voici ce que nous obtenons avec cette commande :

Écriture de texte brut dans le fichier

Création de fichiers temporaires nommés

Les fichiers qui doivent être répartis sur plusieurs processus doivent être nommés de manière à ce qu'un processus ne les supprime pas une fois terminé. Voici comment nous pouvons créer un fichier nommé temporaire :

importer le système d'exploitation
importer le fichier temporaire
fichier_temp = fichier_temp.NomFichierTemporaire()
essayer:
print('tempFile : 0'.format(tempFile))
print('temp.fichier temporaire : 0'.format(fichier temporaire.Nom))
finalement:
# Supprimer également le fichier
fichier temporaire.Fermer()
print('existe-t-il?  : 0'.format(s).chemin.existe (fichier temporaire.Nom)))

Voyons le résultat de cette commande :

Fichier temporaire nommé

Si nous ne supprimons pas le fichier, nous pouvons vérifier son existence dans un autre programme et l'utiliser s'il existe à l'emplacement spécifié.

Fournir le suffixe et le préfixe du nom de fichier

Pour identifier facilement les fichiers qui appartiennent à nos propres processus sur le système de fichiers, nous pouvons également appliquer le suffixe et le préfixe au nom du fichier :

importer le fichier temporaire
fichier_temp = fichier_temp.NamedTemporaryFile(suffix='_ubuntu',
préfixe='linuxhint_',
dir='/tmp',)
essayer:
print('tempFile:', tempFile)
print('tempFile.nom : ', fichier_temp.Nom)
finalement:
fichier temporaire.Fermer()

Voici ce que nous obtenons avec cette commande :

Application du préfixe et du suffixe au nom de fichier

Nous avons fourni trois paramètres à la méthode qui agit comme suffixe et préfixe pour le nom de fichier qui sera fait à l'emplacement que nous avons spécifié.

Conclusion

Dans cette leçon, nous avons vu comment utiliser le module Python tempfile pour gérer les fichiers temporaires dans notre code. Lisez plus de messages basés sur Python ici.

Bataille pour Wesnoth 1.13.6 Développement publié
Bataille pour Wesnoth 1.13.6 publiée le mois dernier, est la sixième version de développement de la 1.13.x series et il apporte un certain nombre d'am...
Comment installer League Of Legends sur Ubuntu 14.04
Si vous êtes fan de League of Legends, alors c'est l'occasion pour vous de tester League of Legends. Notez que LOL est pris en charge sur PlayOnLinux ...
Installez le dernier jeu de stratégie OpenRA sur Ubuntu Linux
OpenRA est un moteur de jeu de stratégie en temps réel libre/gratuit qui recrée les premiers jeux Westwood comme le classique Command & Conquer: Red A...