Maison  >  Article  >  développement back-end  >  Comment implémenter l’opération de modification de fichier en Python ? (avec des exemples)

Comment implémenter l’opération de modification de fichier en Python ? (avec des exemples)

不言
不言avant
2018-10-09 16:41:092406parcourir

Le contenu de cet article concerne comment modifier des fichiers sous Python ? (Avec des exemples), il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Aujourd'hui, nous allons discuter de la façon de mettre en œuvre les opérations d'ouverture d'un fichier - modifier un fichier - fermer un fichier en python

Cet article utilise une explication ligne par ligne.

Idée :

Étape 1 : Lire le fichier
Partie 2 : Utiliser le mode « w » pour écrire dans un nouveau fichier
Partie 3 : Supprimer le fichier d'origine et renommez le nouveau fichier en fichier d'origine
Ceci termine l'opération de modification du fichier

Jetons d'abord un coup d'œil au contenu du fichier d'origine

with open('xiakexing') as old_file:
    print(old_file.read())
赵客缦胡缨,吴钩霜雪明。银鞍照白马,飒沓如流星。
十步杀一人,千里不留行。事了拂衣去,深藏身与名。
闲过信陵饮,脱剑膝前横。将炙啖朱亥,持觞劝侯嬴。
三杯吐然诺,五岳倒为轻。眼花耳热后,意气素霓生。
救赵挥金锤,邯郸先震惊。千秋二壮士,烜赫大梁城。
纵死侠骨香,不惭世上英。谁能书阁下,白首太玄经。

La modification que nous souhaitons apporter est de remplacer le mot « Thousand Miles Not Leaving » dans la deuxième ligne par « Des milliers de miles non populaires »
Remarque supplémentaire : deux fichiers peuvent être ouverts en même temps en utilisant le avec open (), dans cet exemple En fait, le fichier xakexing est ouvert, et le fichier xakexing.bak est créé, et les objets fichier correspondants old_file et new_file sont créés respectivement

with open('xiakexing') as old_file,open('xiakexing.bak','w') as new_file:
#采用for循环从文件对象old_file里迭代地读取文件,简单来讲就是一行一行地读取文件,这样内存中只存储了一行文件的内容,节省了内存,也防止文件过大时造成的“超载”
    for i in old_file:
        if '千里不留行' in i: #这里每读取一行我们就对其进行条件判断,判断该行是否是我们要找的那一行
            i = i.replace('千','万')#当找到该行时,把该行的内容替换成我们想要的内容
#每读取一行我们就在新文件中写入一行,不管该行有没有变化,总之就是读一行、写一行、读一行、写一行
        new_file.write(i) 
#当for循环结束后,文件也已经被我们修改完毕了,这时应该删除旧文件,重命名新文件,为了实现这一目的,我们引入了os模块,os模块内主要是一些和操作系统有关的函数
import os            
os.remove('xiakexing') #删除原文件
os.rename('xiakexing.bak','xiakexing') #把新文件重命名回原文件名,最终实现了文件的修改

Alors jetons un oeil au contenu du fichier

with open('xiakexing') as old_file:
    print(old_file.read())
赵客缦胡缨,吴钩霜雪明。银鞍照白马,飒沓如流星。
十步杀一人,万里不留行。事了拂衣去,深藏身与名。
闲过信陵饮,脱剑膝前横。将炙啖朱亥,持觞劝侯嬴。
三杯吐然诺,五岳倒为轻。眼花耳热后,意气素霓生。
救赵挥金锤,邯郸先震惊。千秋二壮士,烜赫大梁城。
纵死侠骨香,不惭世上英。谁能书阁下,白首太玄经。

De cette façon, nous avons mis en œuvre la modification du fichier. Puisque nous utilisons la méthode avec open() as, il n'est pas nécessaire de fermer le fichier. Si le fichier est ouvert avec file=open(), une instruction pour fermer le fichier doit être ajoutée à la fin.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer