Hallo,
Ich habe ein .txt file mit ganzen Zahlen, in Spalten und Zeilen (siehe Beispiel). Ich möchte jede dieser Zahlen durch 2 Teilen.
Mein Ansatz bisher scheint mir etwas umständlich und ich komme nun auch nicht mehr weiter.
Beispiel Intput:(Tab - getrenntes txt.file)
2 0 4 2
0 4 8 2
gewünschtes Ergebnis:(Tab - getrenntes txt.file)
1 0 2 1
0 2 4 1
(Meine echten Daten bestehen aus 20 Spalten und mehreren Tausend Zeilen.)
###
data = open("file.txt", "r")
file_contents = data.read()
#tabs entfernen
content = [x.strip() for x in file_contents]
# als liste formatieren
str_list = list(filter(None, content))
#integer statt string
results = list(map(int, str_list))
#alle werte teilen
divided = [x / 2 for x in results]
--> [1, 0, 2, 1, 0, 2, 4, 1 ]
divided ist jetzt also eine liste mit den Werten die ich brauche. Jetzt möchte ich sie aber zurück in die Ursprüngliche Formatierung bringen, also ein txt.file in Spalten und Zeilen.
Vielleicht hat ja jemand eine Idee wie ich das hinbekommen könnte, bzw. auch über Vorschläge für völlig neue Ansätze wäre ich sehr dankbar.
Matrix dividieren und als txt. speichern
-
- User
- Beiträge: 512
- Registriert: Mittwoch 13. November 2019, 08:38
Der Einfachheit und der Performance halber würde ich hier zu NumPy raten.
Das sähe dann so aus (ungetestet):
Das sähe dann so aus (ungetestet):
Code: Alles auswählen
import numpy as np
daten = np.loadtxt("file.txt", delimiter="\t")
np.savetxt("divided.txt", daten/2.0, delimiter="\t")
Das machst du am besten mit der Bibliothek numpy
https://numpy.org/doc/stable/index.html
https://numpy.org/doc/stable/reference/ ... adtxt.html
https://numpy.org/doc/stable/reference/ ... vetxt.html
EinfachTobi war schneller
https://numpy.org/doc/stable/index.html
https://numpy.org/doc/stable/reference/ ... adtxt.html
https://numpy.org/doc/stable/reference/ ... vetxt.html

Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png