J'ai ce fichier TXT avec les noms d'utilisateur et certaines données qui leur sont liées Je souhaite modifier les 2 derniers numéros p> par exemple, VAC3 a gagné un jeu avec 90 Points dans 7 tirs, je veux que la nouvelle liste soit p> J'ai tout essayé et rien ne semble fonctionner, je sais que je dois lire le TXT à une liste, Ensuite, réécrivez les données dans cette liste, puis écrasez l'ensemble du TXT. Puis-je obtenir un peu d'aide pls. P> p>
3 Réponses :
Si vous ne voulez pas utiliser csv.reader code>:
Essayez ceci:
with open('players.txt', 'r') as f:
players = []
data = f.readlines()
winner = 'vac3'
scores = ['90', '7']
for line in data:
player = line.split(',')
if player[0] == winner:
player[4] = scores[0]
player[5] = scores[1]
players.append(player)
with open('players.txt', 'w') as f:
f.writelines('')
for player in players:
plr = ','.join(player) + "\n"
f.write(plr)
Vous pouvez utiliser REGEX pour identifier le modèle et remplacer
import re
inpt = "vac3,90,7".split(',')
fmt = f"^({inpt[0]},.*,)\d+,\d+$"
new_txt = ""
with open('t.txt', 'r') as read_f, open('new.txt', 'w') as write_f:
for line in read_f:
new_txt += re.sub(fmt, fr"\g<1>{inpt[1]},{inpt[2]}", line)
write_f.write(new_txt)
Comment le programmateur peut-il savoir que VAC3 devrait se terminer avec 90,7? D'où vient ces données?
Quelle partie avez-vous des difficultés avec, en particulier?
Est-ce que cela répond à votre question? modifier la valeur spécifique dans le fichier CSV via Python
Stackoverflow.com/ Questions / 26903304 / ...