Python avec des fichiers en lecture et en écriture en détail

1. Vue d'ensemble

  • "Méthodes traditionnelles": lors de la lecture et de l'écriture de fichiers, désactivez toujours écrire l'instruction, ce n'est pas seulement facile à oublier, mais la formulation est également plus compliquée
  • "avec open () comme méthode" : pour obtenir la même fonctionnalité, mais la déclaration est plus concise

2 Détaillé

2.1 Différence

2.1.1 Méthodes traditionnelles

path = r"C:\Users\wangyou\Desktop\1"

full_file_name = path + r'\1.txt'

file = open(full_file_name, 'r')
try:
    file_content = file.read()
    print(file_content)
finally:
    file.close()

2.1.2 avec open () comme méthode

  • C'est exactement la même chose que la "méthode traditionnelle" ci-dessus (lorsqu'elle est anormale, le fichier est automatiquement fermé)
path = r"C:\Users\wangyou\Desktop\1"

full_file_name = path + r'\1.txt'

with open(full_file_name, 'r') as file:  # 自定义名称,如:file
    print(file.read())

2.2 avec open () comme principe

  • L'idée de base est que l'objet évalué par with doit avoir une méthode enter () et une méthode exit () .
  • Enter () : Cette méthode est affectée à la valeur de retour comme après la variable
  • Exit () : Quand avec après que tous les blocs de code ont été exécutés plus tard, alors exécution de la méthode (par exemple: file.close ())

Il est recommandé de déboguer le code suivant:

class Sample:
    def __enter__(self):
        print("In __enter__()")
        return "Foo"

    def __exit__(self, type, value, trace):
        print("In __exit__()")


def get_sample():
    return Sample()


if __name__ == '__main__':
    with get_sample() as sample:
        print("sample:", sample)

Résultats de test:

In __enter__()
sample: Foo
In __exit__()

3 exemple

def write_file(path):
    with open(path, 'w', encoding='utf-8') as file:  # 'a': 追加
        file.write("Hello, Python!")


def read_file(path):
    with open(path, 'r', encoding='utf-8') as file:
        print(file.read())


if __name__ == '__main__':
    path = r"C:\Users\wangyou\Desktop\1"

    full_file_name = path + r'\1.txt'

    write_file(full_file_name)
    read_file(full_file_name)

Je suppose que tu aimes

Origine blog.csdn.net/qq_34745941/article/details/108669264
conseillé
Classement