J'ai un programme qui crée une sortie d'un fichier XYZ mais pour une raison quelconque les fichiers produits sont YXZ, j'ai besoin des colonnes x et y être commuté. De plus, les valeurs x et y ont un marquage hémisphérique à la fin. Exemple:Utilisation de Python pour reformater un fichier texte délimité par des tabulations en un format utilisable par un autre programme
00.000000W 000.000000S 0.000
Je dois enlever ces marques de l'hémisphère et de multiples valeurs de -1 pour les rendre un vrai format de degré décimal je peux les lire dans mon prochain programme. Toute valeur avec un "S" ou "W" à la fin devra être multipliée par -1, toute valeur avec "N" ou "E" à la fin peut être simplement supprimée. Si cela peut être fait, cela me permettra d'économiser d'innombrables heures. Je peux effectuer cette opération avec Excel, mais parfois mes fichiers sont trop grands pour travailler avec. S'il vous plaît toute aide que je peux obtenir serait génial.
C'est ce que j'ai jusqu'ici et cela fonctionne pour changer la valeur X et Y, mais je suis bloqué sur enlever et multiplier par -1 pour toute valeur se terminant par "S" ou "W".
infile="my.txt"
outfile="my_edited.txt"
read_infile=open(infile,'r')
write_outfile=open(outfile,'w')
reader=csv.reader(read_infile, delimiter='\t')
writer=csv.writer(writting, delimiter='\t')
for row in reader:
writer.writerow([row[1], row[0], row[2]])
hack qui fonctionne, mais est mauvais et non pythonique: 'pour la ligne dans le lecteur: NEW_ROW = [] new_row.append (float (ligne [1] [: - 1] * [-1 , 1] [ligne [1] [- 1] dans "NE"]) new_row.append (float (ligne [0] [: - 1] * [-1,1] [ligne [0] [- 1] dans "NE"]) new_row.append (float (ligne [2])) writer.writerow (new_row) ' J'espère que quelqu'un vous écrira une réponse plus raisonnable. – David