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 / ...