Maison  >  Article  >  développement back-end  >  Fichiers et flux avancés Python

Fichiers et flux avancés Python

巴扎黑
巴扎黑original
2017-06-23 15:10:421360parcourir

Résumé : les opérations de Python sur les fichiers et les flux sont fondamentalement similaires à celles des autres langages de programmation, et même les instructions sont plus concises que celles des autres langages. En plus de ces deux objets, les fonctions de fichier et de flux ciblent également les objets de type fichier, c'est-à-dire les fonctions de flux en python qui prennent uniquement en charge la lecture mais pas l'écriture. Cet article présente les fonctions et méthodes d'opération courantes sur les fichiers et les flux en python.

La fonction de flux la plus basique en Python : open

open(name[, mode[, buffering]]) : où name est le chemin d'accès au fichier,

Modes de fichiers couramment utilisés en Python :

  • r : mode lecture seule

  • w : mode écrasement

  • a : Mode étendu

  • b : Mode binaire (généralement utilisé avec d'autres modes)

  • + : Mode ajouté (généralement utilisé avec d'autres modes) les modes sont utilisés simultanément)

Parmi eux, la valeur par défaut du mode de fonction ouverte est le mode lecture seule. La fonction de mise en mémoire tampon peut être True ou False, indiquant s'il faut effectuer une accélération de la mémoire sur le fichier.

Fonctions de lecture et d'écriture les plus élémentaires de Python : lecture et écriture et contenu associé

  • read([size]) : Continuer à lire le contenu du fichier à partir de la position actuelle, de la taille Le paramètre est facultatif et spécifie le nombre d'octets à lire. La valeur par défaut est de tout lire dans le fichier.

  • readline([size]) : Lisez la ligne de texte suivante. la taille représente le nombre de caractères lus et modifiés. En Python, vous pouvez utiliser readline pour lire toute la ligne de contenu à la fois, et readlines pour lire toute la ligne de contenu à la fois.

  • write(string) : Écrivez des caractères spéciaux dans le fichier

Remarque : La méthode wirte effacera le fichier d'origine avant de l'écrire. Données pour scripts existants. Cependant, dans le même script, les appels continus à write n'écraseront pas le contenu écrit par l'instruction précédente, mais ajouteront du nouveau contenu après la position d'écriture précédente.

Dans les systèmes Linux, vous pouvez utiliser "$cat Infile | py_script

Source : Baidu Netdisk Search

"//其中somefile.txt含有文本
$ cat somefile.txt | python somescript.py

# somescript.pyimport sys
text = sys.stdin.read()
words = text.split()
wordcount = len(words)print 'Wordcount:', wordcount

Trois formes standard de flux en Python : sys. stdin , sys.stdout et sys.stderr. Lire et écrire à des emplacements spécifiques : fonctions de recherche et de lecture :

En Python, vous pouvez obtenir le caractère suivant à lire via la fonction de recherche et la fonction de lecture. le fichier actuel, l'exemple de code est le suivant :

Fermeture du fichier et effacement du cache
f = open(r'text\somefile.txt', 'w')
f.write('01234567890123456789')
f.seek(5)
f.write('Hello, World!')
f.close()
f = open(r'text\somefile.txt')print f.read()
结果:01234Hello, World!89>>> f = open(r'text/somefile.txt')>>> f.read(3)'012'>>> f.tell()3L

À propos de la méthode close(), lorsque le fichier est utilisé en lecture seule, il est Il est recommandé d'appeler la méthode close() ; Lorsque le fichier est utilisé pour l'écriture, la méthode close() doit être appelée après l'écriture. Afin d'éviter que le fichier ne soit fermé normalement en raison d'exceptions, la méthode close peut être placée dans le fichier. Enfin, de plus, l'opération stream peut être placée dans l'instruction with. C'est également une opération réalisable dans l'instruction, et il n'est pas nécessaire de considérer la question de la fermeture du fichier. Par exemple :

<.> De plus, l'appel de la méthode flush effacera les informations du cache dans le flux d'E/S actuel, vous pouvez vous référer aux deux méthodes courantes suivantes :

l = ["it is a gooday!",     "Hello, world!",     "Thanks"]with open(r&#39;text/RWLines.txt&#39;, &#39;w&#39;) as f:for eachStr in l:
        f.write(eachStr + "\n")"""
This is wrong because file is already closed after with clause:
f.read(2)
"""

while True:char = f.read(1)if not char: break
    process(char)
f.close()while True:
    line = f.readline()if not line: break
        process(line)
f.close()
© <.>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en 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