Cet article vous présente les caractéristiques et les différences des trois modes de lecture et d'écriture des fichiers Python. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Cet article traite principalement des caractéristiques des trois modes de lecture et d'écriture des fichiers et de leurs différences, et si l'opération de modification des fichiers peut être réalisée
En raison du article précédent Nous avons déjà discuté de l'encodage, nous n'étudierons donc pas l'encodage ici. Toutes les opérations ouvertes sont par défaut encodées en utf-8 (sous système Linux)
Nous examinons d'abord r+ (lecture et lecture). write)
Puisque r+ sait à la fois lire et écrire, est-il possible de modifier des fichiers en mode r+ ? La réponse est oui ! Cependant, une chose que vous devez noter est qu'à moins de connaître le contenu exact à modifier à l'emplacement exact, vous n'obtiendrez souvent pas les résultats escomptés. Un exemple est le suivant :
Nous avons un texte comme "Tuez une personne en dix étapes, ne laissez aucune trace sur des milliers de kilomètres"
Supposons qu'il y ait une telle demande, remplacez "Tuez une personne en dix étapes" par "Tuez un bandit en dix étapes", L'idée initiale est : utilisez read(4) pour lire le caractère chinois "一", puis écrivez le caractère chinois "一" :
with open('job', mode='r+') as f: print('先读取四个字符:',f.read(4)) print('读取后的指针位置:',f.tell()) f.write('个土匪') f.seek(0) print(f.read()) 输出为: 先读取四个字符: 十步杀一 读取后的指针位置: 12 十步杀一人,千里不留行个土匪
Comme vous pouvez voyez d'après les résultats, le pointeur s'est effectivement déplacé vers l'emplacement spécifié, mais lors de l'écriture, il ne s'est pas déroulé comme prévu, mais a couru jusqu'à la fin du fichier. Cette raison implique quelque chose appelé "CHUNK". Le professeur Andi ne l'a pas enseigné, donc je ne peux pas l'expliquer en profondeur, je vous en parlerai après l'avoir profondément compris.
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!