Ho un file di dati con colonne comeConserva spazi bianchi utilizzando split() e join() in pitone
BBP1 0.000000 -0.150000 2.033000 0.00 -0.150 1.77
e le singole colonne sono separati da un numero variabile di spazi bianchi.
Il mio obiettivo è quello di leggere in quelle righe, fare alcuni calcoli su più righe, ad esempio moltiplicando la colonna 4 per .95, e scriverle in un nuovo file. Il nuovo file dovrebbe assomigliare a quello originale, ad eccezione dei valori che ho modificato.
Il mio approccio sarebbe leggere nelle righe come elementi di una lista. E poi userei split()
su quelle file che mi interessano, che mi daranno una sottolista con i valori delle singole colonne. Quindi faccio la modifica, join()
le colonne e scrivo le righe dalla lista in un nuovo file di testo.
Il problema è che ho la quantità variabile di spazi bianchi. Non so come reinserirli nello stesso modo in cui li ho letti. L'unico modo in cui potrei pensare è contare i caratteri nella riga prima di dividerli, il che sarebbe molto noioso. Qualcuno ha un'idea migliore per affrontare questo problema?
se il file è in un formato fisso, quindi utilizzando lo stesso numero di spazi è possibile modificare le larghezze delle colonne. È possibile utilizzare la formattazione di stringhe per preservare il formato del file, ad esempio, "" {: 4s} {: 10.6f} {: 10.6f} {: 11.6f} {: 5.2f} {: 6.3f} {: 6.2f} ". format (* row) ', dove' row = ["BBP1", 0.0, -0.15, 0.95 * 2.033, 0.0, -0.15, 1.77] '. – jfs