Maison  >  Article  >  développement back-end  >  Méthodes Python pour lire et écrire des fichiers et des objets fichier

Méthodes Python pour lire et écrire des fichiers et des objets fichier

高洛峰
高洛峰original
2017-02-23 11:20:261117parcourir

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 : Peut Ne placez pas l'instruction open 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 parcourir directement l'objet fichier pour obtenir 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
output = open('data', ' w ' )

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

Écrire Entrez plusieurs lignes

file_object.writelines(list_of_text_strings)

Notez que l'appel de writelines pour écrire plusieurs lignes aura des performances plus élevées que l'utilisation de write pour écrire en une seule fois.

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, qui a un alias appelé open(), qui peut être plus descriptif, ce 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. Ajoutez des modes prenant 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.

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

 :

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

•F.readline([size])

#Read une ligne, si la taille est définie, il peut être renvoyé n'est qu'une partie d'une 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)

#Ecrivez str dans le fichier, write() n'ajoutera pas de caractère de nouvelle ligne après str

•writelines(seq)

#Écrivez tout le contenu de seq dans le 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 long entier "étiquette de fichier"

•F.isatty()

#Si le fichier est un fichier de périphérique terminal ( dans les systèmes Unix)

•F.tell()

#Renvoie la position actuelle de la marque d'opération de fichier, avec le début du fichier comme origine

•F .next()

# Retourne à la ligne suivante et déplace l'indicateur 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.

•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 et d'écriture de fichiers et d'objets fichiers en Python (recommandée) est tout le contenu partagé par l'éditeur. J'espère qu'elle pourra vous donner une référence, et j'espère que vous soutiendrez le site Web PHP chinois. .

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

Déclaration:
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