J'ai un fichier texte d'environ 400 000 lignes. J'ai besoin d'importer ce fichier texte dans un programme qui n'accepte que les fichiers texte délimités par des espaces ou des tabulations, mais ce fichier texte est délimité par des points-virgules. Il n'y a aucune option dans le programme à partir duquel j'exporte le fichier texte (Arcmap) pour modifier la suppression et faire rechercher et remplacer dans le fichier texte lui-même prendra littéralement 2 jours.
J'ai cherché un script pour le faire, mais ils semblent tous remplacer la LIGNE entière du fichier Word par un espace, au lieu de remplacer individuellement chaque point-virgule, me laissant avec un fichier texte vide.
Voici un exemple de mon fichier texte:
"OID_";"POINTID";"GRID_CODE";"POINT_X";"POINT_Y"
;1;-56.000000;200900.250122;514999.750122
;2;-56.000000;200900.750122;514999.750122
;3;-56.000000;200901.250122;514999.750122
;4;-57.000000;200901.750122;514999.750122
;5;-57.000000;200902.250122;514999.750122
;6;-57.000000;200902.750122;514999.750122
;7;-57.000000;200903.250122;514999.750122
;8;-57.000000;200903.750122;514999.750122
;9;-57.000000;200904.250122;514999.750122
;10;-57.000000;200904.750122;514999.750122
J'en ai besoin pour ressembler à ceci:
1 -56.000000 200900.250122 514999.750122
2 -56.000000 200900.750122 514999.750122
Que dis-tu de ça:
sed -i 's/;/ /g' yourBigFile.txt
Ce n'est pas une solution Python. Vous devez démarrer cela dans un Shell. Mais si vous utilisez le Bloc-notes, je suppose que vous êtes sous Windows. Alors voici un Python = solution:
f1 = open('yourBigFile.txt', 'r')
f2 = open('yourBigFile.txt.tmp', 'w')
for line in f1:
f2.write(line.replace(';', ' '))
f1.close()
f2.close()
avec Python, vous pouvez utiliser fileinput .
import fileinput
for line in fileinput.FileInput("file",inplace=1):
line = line.replace(";"," ")
print line,
cela remplacera tous vos ";" aux espaces en place.