Bewahren Leerzeichen bei Verwendung von split() und join() in python

Ich habe eine Daten-Datei mit den Spalten wie

BBP1   0.000000  -0.150000    2.033000  0.00 -0.150   1.77

und die einzelnen Spalten werden getrennt durch eine unterschiedliche Anzahl von Leerzeichen.

Mein Ziel ist es zu Lesen in den Zeilen, einige der Mathematik auf mehrere Zeilen, zum Beispiel Multiplikation Spalte 4 von .95, und schreibt diesen in eine neue Datei. Die neue Datei sollte so Aussehen wie das original, außer für die Werte, die ich geändert.

Mein Ansatz wäre das Lesen in den Zeilen, die als Elemente einer Liste. Und dann würde ich split() für diese Zeilen, ich bin interessiert an, was mir eine Unterliste mit den einzelnen Spaltenwerte. Dann mache ich die änderung, join() die Spalten zusammen und schreiben Sie die Zeilen der Liste, um eine neue text-Datei.

Das problem ist, dass ich die unterschiedliche Anzahl von Leerzeichen. Ich weiß nicht, wie vorstellen Sie wieder in der gleichen Weise, die ich Lesen. Die einzige Möglichkeit die ich mir vorstellen könnte ist die Anzahl Zeichen in der Zeile, bevor ich aufteilen, das wäre sehr mühsam. Hat jemand eine bessere Idee, um dieses problem anzugehen?

  • wenn sich die Datei in einem festen format, dann mit der gleichen Anzahl von Leerzeichen können Sie die Spaltenbreite ändern. Sie könnten die Verwendung von string-Formatierung, um das Dateiformat beibehalten z.B. "{:4s} {:10.6f} {:10.6f} {:11.6f} {:5.2f} {:6.3f} {:6.2f}".format(*row), wo row = ["BBP1", 0.0, -0.15, 0.95*2.033, 0.0, -0.15, 1.77].
InformationsquelleAutor | 2013-03-22
Schreibe einen Kommentar