2017-10-17 9 views
0

J'essaie de créer un programme qui peut mettre à jour un fichier. J'ai créé un programme de test car je n'arrive pas à comprendre comment mettre à jour une partie du fichier.Comment mettre à jour une ligne spécifique dans un fichier en python?

Je veux faire en sorte que si un nom correspond à celui d'un fichier dans le fichier, il supprimera le nom et ses données et placera le nom et les nouvelles données à la fin.

Voici mon code où je suis simplement en train de supprimer le nom de la liste:

lines = open("input.txt", "rt") 
output = open("output.txt", "wt") 
for line in lines: 
    if not "Ben": 
     output.write(line+"\n") 
lines.close() 
output.close() 
+1

La condition ' pas "Ben" 'évaluera toujours à" Faux ". Il prend la chaîne "Ben" et la convertit en "bool", ce qui donne "True", puisque la chaîne n'est pas vide; 'non' aboutit à la négation de 'Vrai', ce qui donne 'Faux'. –

Répondre

1

semble que vous avez juste besoin de fixer votre condition:

lines = open("input.txt", "rt") 
output = open("output.txt", "wt") 
for line in lines: 
    if "Ben" not in line: 
     output.write(line+"\n") 
lines.close() 
output.close() 
+1

Ceci est généralement écrit comme "Ben" pas en ligne "en Python. C'est complètement équivalent, mais ressemble plus à l'anglais quand on le lit. –

+0

correct, je vais éditer cela. –

0
lines = open("input.txt", "rt") 
output = open("output.txt", "wt") 
for line in lines: 
    if not "Ben" in line: 
     output.write(line+"\n") 
    else: 
     output.write(line.replace("Ben","replace/delete Ben")+"\n") 
lines.close() 
output.close() 
+0

il voulait ajouter la nouvelle ligne à la fin du fichier, par conséquent, il ne devrait pas être inclus ici. –