Comment ajouter une ligne vide après une certaine chaîne dans un fichier texte?
J'ai besoin de trouver un moyen d'ajouter une nouvelle ligne après une certaine chaîne dans un fichier texte.
discount_percent :20
discounted :true
final_price :1199
id :893850
name : THELONGING
original_price :1499
discount_percent :40
discounted :true
final_price :119
id :1476450
name : CyberHentai
original_price :199
discount_percent :30
discounted :true
final_price :139
id :1478030
name : MamboWave
original_price :199
discount_percent :15
discounted :true
final_price :84
id :1506230
name : BigfootForest
original_price :99
discount_percent :40
discounted :true
final_price :59
id :1502600
name : AlienX
original_price :99
Ici, j'ai un fichier .txt et j'ai besoin d'un moyen d'ajouter une nouvelle ligne après toute ligne contenant 'prix_original' et le prix / les nombres après.
il y a probablement une solution facile à cela, mais je n'arrive pas à comprendre cela, et je n'ai pratiquement aucune connaissance sur la façon d'utiliser Regex
J'ai essayé ce qui suit:
def fixSpacing():
file1 = open('data.txt', 'w')
file2 = open('tempdata.txt', 'r+')
for line in file2.readlines():
if line.startswith('original_price :'):
Mais je ne pouvais pas penser à un moyen d'ajouter une nouvelle ligne après les chiffres pour le prix.
Pour moi, cela ressemble à une tâche pour l' entrée de fichier du module intégré car il peut fonctionner en mode inplace. Prenons l'exemple suivant, que le file.txt
contenu soit:
title: 1
price: 100
desc: one
title: 2
price: 200
desc: two
puis
import fileinput
for line in fileinput.input("file.txt", inplace=True):
end = "\n" if line.startswith("price") else ""
print(line, end=end)
changera ledit contenu de fichier en
title: 1
price: 100
desc: one
title: 2
price: 200
desc: two
explication: en mode inplace, la sortie standard est dirigée vers le fichier d'entrée (si un fichier du même nom que le fichier de sauvegarde existe déjà, il sera remplacé silencieusement). Cela permet d'écrire un filtre qui réécrit son fichier d'entrée en place. afin que nous puissions simplement utiliser print
, comme les lignes de fichiers d'entrée de les nouvelles lignes sont conservées en utilisant \n
comme print
« s end
se traduira par ligne vide supplémentaire et vide str en ligne inchangée garder. Gardez à l'esprit qu'après utilisation, vous n'aurez plus le fichier d'origine, seulement modifié.