méthodes python de lecture, d'écriture et de création de fichiers

高洛峰
Libérer: 2017-02-23 11:09:14
original
1041 Les gens l'ont consulté

Le fonctionnement des fichiers et des dossiers (fonctions d'opération de fichiers) en python nécessite le module os et le module Shutil.

Obtenir le répertoire de travail actuel, c'est-à-dire le chemin du répertoire dans lequel le script Python actuel fonctionne : os.getcwd()

Renvoyer tous les noms de fichiers et de répertoires dans le répertoire spécifié : os.listdir()

La fonction permet de supprimer un fichier : os.remove()

Supprimer plusieurs répertoires : os.removedirs(r "c:python")

Vérifiez le chemin donné Vérifiez si le chemin est un fichier : os.path.isfile()

Vérifiez si le chemin donné est un répertoire : os.path.isdir()

Vérifiez s'il s'agit d'un chemin absolu : os.path.isabs()

Vérifiez si le chemin donné existe réellement : os.path.exists()

Renvoyer le nom du répertoire et le nom du fichier d'un chemin : os.path.split() par exemple os.path.split('/home/swaroop/byte/code/poem.txt') Résultat : ('/home/swaroop/byte/code', 'poem.txt' )

Nom de l'extension divisée : os.path.splitext()

Obtenir le nom du chemin : os.path.dirname()

Obtenir le nom du fichier : os.path.basename ()

Exécuter les commandes Shell : os.system()

Lire et définir les variables d'environnement : os.getenv() et os.putenv()

donne le terminateur de ligne utilisé par la plateforme actuelle : os.linesep Windows utilise 'rn', Linux utilise 'n' et Mac utilise 'r'

Indiquez la plateforme que vous utilisez : os.name Pour Windows, c'est 'nt' et pour les utilisateurs Linux/Unix, c'est 'posix'

Renommer : os.rename(old, new)

Créer un répertoire multi-niveaux : os.makedirs(r "c:pythontest")

Créer un seul répertoire : os.mkdir ("test")

Récupérer les attributs du fichier : os.stat (fichier)

Modifier les autorisations et les horodatages du fichier : os.chmod (fichier)

Terminer le processus en cours : os.exit()

Obtenir la taille du fichier : os.path.getsize(filename)


Opération sur le fichier :
os.mknod(" test.txt") Créez un fichier vide
fp = open("test.txt",w) Ouvrez directement un fichier Si le fichier n'existe pas, créez le fichier

À propos du mode ouvert :

w s'ouvre en écriture,
a s'ouvre en mode ajout (commence par EOF, créant un nouveau fichier si nécessaire)
r s'ouvre en mode lecture-écriture
w s'ouvre en mode lecture-écriture (voir w )
a Ouvrir en mode lecture-écriture (voir a)
rb Ouvrir en mode lecture binaire
wb Ouvrir en mode écriture binaire (voir w)
ab Ouvrir en mode ajout binaire (voir a)
rb Ouvrir en mode lecture-écriture binaire (voir r)
wb Ouvrir en mode lecture-écriture binaire (voir w)
ab Ouvrir en lecture-écriture binaire mode (voir a)

fp.read([size ]) #size est la longueur de la lecture, en octets

fp.readline([size]) #Lire une ligne If. size est défini, il est possible de renvoyer seulement une partie de la ligne

fp.readlines([size]) # Traiter chaque ligne du fichier comme membre d'une liste et renvoyer cette liste. En fait, il est implémenté en interne en appelant readline() dans une boucle. Si le paramètre size est fourni, size représente la longueur totale du contenu lu, ce qui signifie que seule une partie du fichier peut être lue.

fp.write(str) #Écrivez str dans le fichier. write() n'ajoutera pas de caractère de nouvelle ligne après str

fp.writelines(seq) #Write seq Tout le contenu est écrit. dans le fichier (plusieurs lignes sont écrites à la fois). Cette fonction écrit également fidèlement, sans rien ajouter après chaque ligne.

fp.close() #Fermez le fichier. Python fermera automatiquement un fichier une fois qu'il n'est plus utilisé. Cependant, cette fonction n'est pas garantie. Il est préférable de prendre l'habitude de le fermer vous-même. Si un fichier est opéré après sa fermeture, une ValueError sera générée

fp.flush() #Écrire le contenu du tampon sur le disque dur

fp.fileno() # Renvoie un entier long Tapez "file label"

fp.isatty() #Si le fichier est un fichier de périphérique terminal (dans un système Unix)

fp.tell() #Renvoie le courant position de la marque d'opération de fichier, en prenant le début du fichier comme origine

fp.next() #Retournez à la ligne suivante et déplacez la marque d'opération de fichier vers la ligne suivante. Lorsqu'un fichier est utilisé dans une instruction telle que for...in file, la fonction next() est appelée pour implémenter le parcours.

fp.seek(offset[,whence]) #Déplacez la marque d'opération de fichier vers la position de décalage. Ce décalage est généralement calculé par rapport au début du fichier et est généralement un nombre positif. Mais ce n'est pas nécessairement le cas si le paramètre whence est fourni. whence peut être 0 pour recommencer le calcul depuis le début, et 1 pour utiliser la position actuelle comme origine. 2 indique que la fin du fichier est utilisée comme origine du calcul. Il convient de noter que si le fichier est ouvert en mode a ou a, la marque d'opération de fichier reviendra automatiquement à la fin du fichier à chaque fois qu'une opération d'écriture est effectuée.

fp.truncate([size]) #Coupez le fichier à la taille spécifiée. La valeur par défaut est de couper à la position de la marque d'opération actuelle du fichier. Si la taille est supérieure à la taille du fichier, selon le système, le fichier peut ne pas être modifié, le fichier peut être complété à la taille correspondante avec 0, ou du contenu aléatoire peut être ajouté.

Opération sur le répertoire :
os.mkdir("file") Créer un répertoire
Copier le fichier :
shutil.copyfile("oldfile", "newfile") L'ancien et le nouveau fichier ne peuvent être que des fichiers
shutil.copy("oldfile","newfile") oldfile ne peut être qu'un dossier, newfile peut être un fichier ou un répertoire cible
Copiez le dossier :
shutil.copytree("olddir","newdir " ) Olddir et newdir ne peuvent être que des répertoires, et newdir ne doit pas exister
Renommer les fichiers (répertoires)
os.rename("oldname", "newname") Utilisez cette commande pour les fichiers ou les répertoires
Déplacer les fichiers (répertoires)
shutil.move("oldpos","newpos")
Supprimer les fichiers
os.remove("file")
Supprimer les répertoires
os.rmdir( "dir") ne peut supprimer que les répertoires vides
shutil.rmtree("dir") Les répertoires vides et les répertoires avec du contenu peuvent être supprimés
Convertir le répertoire
os.chdir("path") Changer le chemin

Python lit et écrit des fichiers

1.open
Après avoir utilisé open pour ouvrir un fichier, vous devez vous rappeler d'appeler la méthode close() de l'objet fichier. Par exemple, vous pouvez utiliser l'instruction try/finally pour garantir que le fichier peut être définitivement fermé.

file_object = open('thefile.txt')
essayez :
all_the_text = file_object.read( )
finalement :
file_object.close( )

Remarque : L'instruction open ne peut pas être placée dans le bloc try car lorsqu'une exception se produit lors de l'ouverture du fichier, l'objet fichier file_object ne peut pas exécuter la méthode close().

2. Lire le fichier
Lire le fichier texte
input = open('data', 'r')
#Le deuxième paramètre est par défaut r
input = open(' data ')

Lire le fichier binaire
input = open('data', 'rb')

Lire tout le contenu
file_object = open('thefile. txt' )
essayez :
all_the_text = file_object.read()
finalement :
file_object.close()

Lire les octets fixes
file_object = open ('abinfile ', 'rb')
essayez :
while True:
chunk = file_object.read(100)
if not chunk:
break
do_something_with(chunk)
finalement :
file_object.close( )

Lire chaque ligne
list_of_all_the_lines = file_object.readlines( )

Si le fichier est un fichier texte, vous pouvez également le parcourir directement l'objet Fichier obtient chaque ligne :

pour la ligne dans file_object :
ligne de processus

3. Écrire le fichier
Écrire le fichier texte
output = open(' data ', 'w')

Écrire un fichier binaire
output = open('data', 'wb')

Ajouter un fichier d'écriture
sortie = open('data', 'w')

Écrire des données
file_object = open('thefile.txt', 'w')
file_object.write(all_the_text)
file_object.close( )

Écrire plusieurs lignes
file_object.writelines(list_of_text_strings)

Notez qu'appeler des lignes d'écriture pour écrire plusieurs lignes aura de meilleures performances que d'utiliser l'écriture à la fois Écrivez trop haut.

Lors du traitement des fichiers journaux, nous rencontrons souvent une telle situation : le fichier journal est énorme et il est impossible de lire l'intégralité du fichier dans la mémoire pour le traiter en une seule fois. Par exemple, il doit être traité. un ordinateur avec une mémoire physique de 2 Go En traitant un fichier journal de 2 Go sur la machine, nous pouvons vouloir traiter seulement 200 Mo de son contenu à la fois.
En Python, l'objet File intégré fournit directement une fonction readlines(sizehint) pour accomplir une telle chose. Prenons le code suivant comme exemple :

file = open('test.log', 'r')sizehint = 209715200 # 200Mposition = 0lines = file.readlines(sizehint)while not file.tell() - position < 0 : position = file.tell() lines = file.readlines(sizehint)

Chaque fois que la fonction readlines(sizehint) est appelée, environ 200 Mo de données seront renvoyées et les données renvoyées doivent être complète. Les données de ligne, dans la plupart des cas, le nombre d'octets des données renvoyées sera légèrement supérieur à la valeur spécifiée par sizehint (sauf lorsque la fonction readlines(sizehint) est appelée pour la dernière fois). Normalement, Python ajustera automatiquement la valeur sizehint spécifiée par l'utilisateur à un multiple entier de la taille du cache interne.

file est un type spécial en python, qui est utilisé pour faire fonctionner des fichiers externes dans les programmes python. Tout en Python est un objet, et file ne fait pas exception. Voyons d'abord comment créer un objet fichier :


file(name[, mode[, buffering]])
La fonction file() est utilisée pour créer un objet fichier. Elle a un alias appelé open(), qui peut être plus vivant. sont des fonctions intégrées. Jetons un coup d'œil à ses paramètres. Ses paramètres sont tous passés sous forme de chaînes. name est le nom du fichier.
mode est le mode ouvert, les valeurs facultatives sont r w a U, qui représentent respectivement la lecture (par défaut) et l'écriture qui prennent en charge divers sauts de ligne. Si vous ouvrez un fichier en mode w ou a, si le fichier n'existe pas, il sera créé automatiquement. De plus, lorsque vous utilisez le mode w pour ouvrir un fichier existant, le contenu du fichier d'origine sera effacé, car la marque d'opération de fichier initiale se trouve au début du fichier. Si vous effectuez une opération d'écriture à ce moment, le contenu d'origine. sera sans aucun doute supprimé. Pour des raisons historiques, le caractère de nouvelle ligne a différents modes selon les systèmes. Par exemple, sous Unix, il s'agit d'un n et sous Windows, il s'agit de « rn ». L'ouverture d'un fichier en mode U prend en charge tous les modes de nouvelle ligne, ce qui signifie « ». r' 'n' 'rn' peuvent tous représenter des nouvelles lignes, et il y aura un tuple utilisé pour stocker les caractères de nouvelle ligne utilisés dans ce fichier. Cependant, bien qu'il existe de nombreux modes pour les sauts de ligne, lors de la lecture en Python, n est utilisé à la place. Après le caractère mode, vous pouvez également ajouter les deux identifiants b et t, qui indiquent respectivement que le fichier peut être lu et écrit en même temps et que le fichier peut être ouvert en mode binaire ou en mode texte (par défaut).
Si la mise en mémoire tampon est 0, cela signifie aucune mise en mémoire tampon ; si elle est 1, cela signifie « mise en mémoire tampon de ligne » ; si c'est un nombre supérieur à 1, cela signifie la taille du tampon, qui doit être en octets.

L'objet fichier a ses propres propriétés et méthodes. Examinons d'abord les attributs du fichier.


fermé #Marque si le fichier a été fermé, réécrit par close()
encoding #File encoding
mode #Open mode
name #File name
newlines # Dans le fichier Le mode newline utilisé est un tuple
softspace #boolean de type, généralement 0. Il est dit utilisé pour lire et écrire le fichier print

:

F.read( [size] ) #size est la longueur de la lecture, en octets
F.readline([size])
#Read a line Si size est défini, il est possible de renvoyer seulement une partie de la ligne.
F.readlines ([size])
# Traitez chaque ligne du fichier comme un membre d'une liste et renvoyez cette liste. En fait, il est implémenté en interne en appelant readline() dans une boucle. Si le paramètre size est fourni, size représente la longueur totale du contenu lu, ce qui signifie que seule une partie du fichier peut être lue.
F.write(str)
#Write str dans le fichier. write() n'ajoutera pas de caractère de nouvelle ligne après str
F.writelines(seq)
#Write seq Tout le contenu est écrit. au fichier. Cette fonction écrit également fidèlement, sans rien ajouter après chaque ligne.

Autres méthodes de fichier :

F.close()
#Fermez le fichier. Python fermera automatiquement un fichier une fois qu'il n'est plus utilisé. Cependant, cette fonction n'est pas garantie. Il est préférable de prendre l'habitude de le fermer vous-même. Si un fichier est opéré après sa fermeture, une ValueError sera générée
F.flush()
#Écrire le contenu du tampon sur le disque dur
F.fileno()
# Renvoie un entier long Type de "étiquette de fichier"
F.isatty()
#Si le fichier est un fichier de périphérique terminal (dans un système Unix)
F.tell()
#Renvoie le position actuelle de la marque d'opération de fichier , en prenant le début du fichier comme origine
F.next()
# Revenir à la ligne suivante et déplacer la marque d'opération de fichier à la ligne suivante. Lorsqu'un fichier est utilisé dans une instruction telle que for ... in file, la fonction next() est appelée pour implémenter le parcours.
F.seek(offset[,whence])
#Déplacez la marque d'opération de fichier vers la position de décalage. Ce décalage est généralement calculé par rapport au début du fichier et est généralement un nombre positif. Mais ce n'est pas nécessairement le cas si le paramètre whence est fourni. whence peut être 0 pour recommencer le calcul depuis le début, et 1 pour utiliser la position actuelle comme origine. 2 indique que la fin du fichier est utilisée comme origine du calcul. Il convient de noter que si le fichier est ouvert en mode a ou a, la marque d'opération de fichier reviendra automatiquement à la fin du fichier à chaque fois qu'une opération d'écriture est effectuée.
F.truncate([size])
#Couper le fichier à la taille spécifiée. La valeur par défaut est de couper à la position de la marque d'opération actuelle du fichier. Si la taille est supérieure à la taille du fichier, selon le système, le fichier peut ne pas être modifié, le fichier peut être complété à la taille correspondante avec 0, ou du contenu aléatoire peut être ajouté.

La méthode ci-dessus de lecture, d'écriture et de création de fichiers en Python (à lire absolument) est tout le contenu partagé par l'éditeur. J'espère qu'elle pourra vous donner une référence, et j'espère également que tout le monde prendra en charge PHP. Site chinois.

Pour plus d'articles liés aux méthodes Python de lecture, d'écriture et de création de fichiers, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal