Module fermé en python

Module fermé en python
La gestion des fichiers et la gestion des objets de fichiers sont considérés comme l'une des tâches les plus délicates de tous les langages de programmation. Certains langages de programmation nous fournissent certains outils qui abstraitent les parties difficiles de la gestion des fichiers avec des fonctions et interfaces faciles à utiliser. C'est exactement ce que Python fermer Le module fait aussi.

Python Shuttil

Le module Python Shutil permet à un développeur d'utiliser des objets de fichier très facilement et sans entrer dans les détails plus profonds sur le fonctionnement des choses sous les couvertures. Ce module résume essentiellement la sémantique de bas niveau de la création et de la gestion d'objets de fichier, les nettoyant une fois utilisés est complet et nous permet de nous concentrer sur la logique métier de l'application. Nous verrons de nombreux exemples ici, commençons.

Exemples avec le module de fermeture Python

Nous étudierons divers exemples démontrant l'utilisation de Python fermer module ici.

Copie d'un fichier

Avec le copier un fichier() fonctionner dans fermer Module, nous pouvons faire une copie exacte d'un fichier existant n'importe où sur la machine. Regardons un échantillon de programme pour démontrer comment cela peut être fait:

Importer un système d'exploitation
Importer la fermeture
file_directory = './Des dossiers'
Imprimer ('Fichiers avant:', OS.listDir (file_directory)))
fermer.copier un fichier('./ Fichiers / bonjour.SMS', './ Fichiers / hello_again.SMS')
Imprimer ('Fichiers après:', OS.listDir (file_directory)))

Nous venons de copier un fichier qui existe dans le répertoire donné pour cloner le fichier dans le même répertoire. Voici ce que nous récupérons avec cette commande:

Copie de fichier de fermeture Python

La bonne chose à propos de cette fonction est que la fonction mentionnée prend également en entrée le nom du nouveau fichier à créer.

Copie de fichiers dans un autre répertoire

Il est possible de copier un fichier dans un nouveau répertoire avec Shuttil copie() fonction. Regardons-le en action:

Importer un système d'exploitation
Importer la fermeture
Imprimer («faire un nouveau répertoire.')
OS.Mkdir ('Linuxhint')
Imprimer ('Fichiers avant:', OS.listDir ('Linuxhint'))
fermer.copie('./ Fichiers / bonjour.txt ',' linuxhint ')
Imprimer ('Fichiers après:', OS.listDir ('Linuxhint'))

Voyons la sortie de cette commande:

Copie de fichier dans un nouveau répertoire

Notez que lorsqu'un fichier est copié en utilisant le copie() fonction, Les autorisations pour le fichier sont également clonées Mais les métadonnées du fichier ne sont pas copiées. Cela signifie que lorsque vous vérifiez quand ce fichier a été réalisé, il affichera le temps frais lorsque vous exécutez ce script.

Copie de fichiers avec des métadonnées

Dans la dernière section, nous avons vu comment nous pouvions faire une copie du fichier. Et si vous voulez faire un clone exact d'un fichier qui implique de cloner ses métadonnées aussi comme lorsque le fichier a été réalisé, etc. C'est possible aussi mais c'est peut ne pas fonctionner sur un système basé sur POSIX. Regardons un exemple sur la façon dont cela peut être fait:

Importer un système d'exploitation
Importer la fermeture
heure d'importation
new_directory = 'Linuxhint'
src_file = './ Fichiers / bonjour.SMS'
dest_file = './ Linuxhint / bonjour.SMS'
def file_metadata (fichier):
stat_info = os.stat (fichier)
Imprimer ('Mode:', oct (stat_info.ST_MODE))
Print ('Créé:', Time.ctime (stat_info.st_ctime))
Imprimer ('Consulté:', Time.ctime (stat_info.st_atime))
Imprimer ('modifié:', Time.ctime (stat_info.st_mtime))
OS.Mkdir (new_directory)
print ('Metadata pour le fichier source:')
file_metadata (src_file)
fermer.copy2 (src_file, new_directory)
print ('Metadata pour le fichier de destination:')
file_metadata (dest_file)

Voici ce que nous récupérons avec cette commande lorsque nous exécutons cela sur un système basé sur POSIX (les métadonnées ne sont pas complètement clonées):

Copier le fichier avec les métadonnées

Sur les systèmes non basés sur Posix, même le temps créé et accessible aurait correspondu exactement.

Répertoire complet de clonage

Dans la dernière section, nous avons vu comment nous pouvions faire une copie du fichier. Ici, nous verrons comment nous pouvons cloner un répertoire complet récursivement. Cela signifie que si un autre répertoire existe dans le répertoire que nous voulons cloner, ceux-ci seront également clonés.

Importer un empreinte
Importer la fermeture
Importer un système d'exploitation
src_directory = './Des dossiers'
dest_directory = './ Linuxhint '
fermer.Copytree (SRC_Directory, dest_directory)
Imprimer ('Contenu de la source:')
tampon.Pprint (OS.listDir (src_directory)))
Imprimer ('Contenu de la destination:')
tampon.Pprint (OS.listDir (dest_directory))

Voyons la sortie de cette commande:

Duplication d'un répertoire

Notez que le répertoire que nous passons à CopyTree () fonctionne comme Le répertoire de destination ne doit pas exister avant d'exécuter ce programme.

Suppression d'un répertoire

La suppression d'un répertoire est très simple avec le rmtree () fonction dans le module. Voyons cette fonction en action ici:

Importer un empreinte
Importer la fermeture
Importer un système d'exploitation
Delete_Directory = 'Linuxhint'
current_directory = '.'
Imprimer ('Contenu avant le retrait:')
tampon.Pprint (OS.listDir (current_directory))
fermer.rmtree (delete_directory)
Imprimer ('Contenu après la suppression:')
tampon.Pprint (OS.listDir (current_directory))

Après avoir exécuté le script, Linuxhint Le répertoire est supprimé avec le contenu. Voici ce que nous récupérons avec cette commande:

Supprimer le répertoire

Rechercher des fichiers

Si vous souhaitez trouver un fichier qui est présent sur la variable de chemin sur votre machine, nous pouvons utiliser le qui() fonction pour trouver ce fichier par nom. Regardons un exemple de démonstration pour cette fonction:

Importer la fermeture
Imprimer (fermer.qui ('bsuntump')))
Imprimer (fermer.qui («sans fichier»)))

Voici ce que nous récupérons avec cette commande:

Trouver le fichier sur le chemin

Surveillance de l'espace du système de fichier

Avec le module ShutLil, nous avons une fonction disque_usage () à travers laquelle nous pouvons également obtenir des informations sur l'espace disque sur notre machine. Regardons un exemple qui montre ces données de manière lisible par l'homme:

Importer la fermeture
total_b, used_b, free_b = shutil.utilisation du disque('.')
gb = 10 ** 9 # gb == gigabyte
print ('Total: : 6.2f gb '.format (total_b / gb))
print ('utilisé: : 6.2f gb '.format (used_b / gb))
print ('gratuit: : 6.2f gb '.format (libre_b / gb))

Voici ce que nous récupérons avec cette commande:

Trouver un espace de système de fichiers

Répertoires d'archivage

Comme dernier exemple, nous verrons comment nous pouvons archiver un module de fermeture de répertoire Make_archive () fonction. Regardons le programme d'échantillon:

Importer la fermeture
Importer un système d'exploitation
archive_directory = \
OS.chemin.élargir (OS.chemin.join ('Destination-Directory-Path', 'LinuxHint'))
root_dir = os.chemin.élargir (OS.chemin.rejoindre ('~', '.ssh '))
fermer.Make_archive (archive_directory, 'gztar', root_dir)

Voici ce que nous récupérons avec cette commande:

Répertoire d'archivage

Si vous désarchisez le fichier TAR et jetez un coup d'œil, il contiendra tous les .ssh Fichiers d'annuaire dedans.

Conclusion

Dans cette leçon, nous avons examiné comment nous pouvons gérer facilement des objets de fichier avec des opérations de fichiers de haut niveau avec fermer module en python. Des opérations comme la copie du contenu d'un fichier, créez une nouvelle copie d'un fichier etc. a l'air facile avec ce module.