0
votes

Remplacement d'une chaîne numérique avec une autre dans un fichier .txt

My .txt Vous avez beaucoup de chiffres divisé en deux rangées, mais ils sont de la manière brésilienne de les écrire (cela signifie que le nombre 3.41 est écrit comme 3,41) ... Je sais comment lire chaque colonne, je Il suffit de changer chaque virgule dans le .txt à un point, mais je ne sais pas comment faire ça ...

Il y a 3 façons que je pensais résoudre le problème:

changer chaque virgule en point et écraser le précédent .txt,

Écrivez un autre .txt avec un autre nom, mais avec chaque virgule transformée en un point,

Importez chaque chaîne (qui devrait être flottante) à partir du TXT et d'utiliser Remplacer pour changer le "", "dans un". ".

Si vous pouvez m'aider avec l'une des deux premières manières serait meilleure, en particulier la première

(Je viens d'importer des numéros et je ne sais pas comment utiliser les autres bibliothèques, donc si vous pouviez m'aider avec les codes et les recettes, j'apprécierais vraiment que) (désolé pour le mauvais anglais, je t'aime)


1 commentaires

Toute raison pour laquelle cela doit être fait dans python ?


3 Réponses :


1
votes

Bien que votre question soit étiquetée python code>, voici une manière non pythonique super simple, à l'aide de l'utilitaire SED CODE> cmdline.

Ceci remplacera toutes les virgules (, code>) avec des points (. code>) dans votre fichier texte, écrase le fichier d'origine: p> xxx pré>

ou, si vous voulez le Sortie dans un fichier différent: P>

sed -e 's/,/./g' yourtext.txt > newfile.txt


2 commentaires

Comment l'utiliser sur le code? Dois-je importer quelque chose? Placez cela avant d'ouvrir le .txt? Après?


C'est un script shell d'être exécuté sur la ligne CMDLINE. Cela n'a rien à voir avec Python.



1
votes

Essayez ceci:

with open('input.txt') as input_f, open('output.txt', 'w') as output_f:
    for line in input_f.readlines():
        output_f.write(line.replace(',', '.'))


0 commentaires

0
votes

La réponse de Umlaute est bonne, mais si vous insistez sur cela dans Python, vous pouvez utiliser fichierInput , qui prend en charge l'emplacement de remplacement: xxx

Cet exemple suppose que vous avez C'est déjà dans votre exemple. Si vous avez ~ S dans vos données, n'hésitez pas à échanger cela pour un autre caractère rare.

Si vous travaillez avec un CSV, veillez à ne pas remplacer votre caractère de délimitation de colonne. Dans ce cas, vous voudrez probablement utiliser REGEX remplacer au lieu de vous assurer que chaque virgule remplacée est entourée par des chiffres: r '\ d, \ d'


0 commentaires