Mam plik danych z kolumn jakZachowaj spacje przy użyciu split() oraz join() w Pythonie
BBP1 0.000000 -0.150000 2.033000 0.00 -0.150 1.77
a poszczególne kolumny są oddzielone od siebie różną liczbą białych znaków.
Moim celem jest odczytanie w tych wierszach, wykonanie matematyki w kilku wierszach, na przykład pomnożenie kolumny 4 przez 0,95 i zapisanie ich do nowego pliku. Nowy plik powinien wyglądać jak oryginalny, z wyjątkiem wartości, które zmodyfikowałem.
Moim podejściem byłoby czytanie w wierszach jako pozycje listy. A potem użyłbym split()
w tych wierszach, które mnie interesują, co da mi podlistę z indywidualnymi wartościami kolumn. Następnie wykonuję modyfikację, a następnie wpisuję linie z listy do nowego pliku tekstowego.
Problem polega na tym, że mam zmienną liczbę białych znaków. Nie wiem, jak wprowadzić je z powrotem w ten sam sposób, w jaki je przeczytałem. Jedyny sposób, jaki mogłem wymyślić, to zliczyć postacie w linii, zanim je podzielę, co byłoby bardzo uciążliwe. Czy ktoś ma lepszy pomysł na rozwiązanie tego problemu?
jeśli plik jest w ustalonym formacie, użycie tej samej liczby spacji może zmienić szerokość kolumny. Można użyć formatowania ciągów, aby zachować format pliku, np. "{{4s} {: 10.6f} {: 10.6f} {: 11.6f} {: 5.2f} {: 6.3f} {: 6.2f}". format (* wiersz) ', gdzie' wiersz = ["BBP1", 0,0, -0,15, 0,95 * 2,033, 0,0, -0,15, 1,77] ". – jfs