Python(Spyder) RegEx Auswertung nach Excel übertragen
- __blackjack__
- User
- Beiträge: 13110
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@yokay: Ja, das vorhaben ist realisierbar.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Also ist Excel hier nur das Tool der Wahl, weil man damit schoen Diagramme malen kann? Dann wuerde ich das sofort rausschmeissen. Mit Python und zB bokeh kannst du sich automatisch updatende, interaktive Graphen im Browser erstellen.
Warum muss es eine Exceltabelle sein? CSV-Dateien kann Excel ja auch öffnen und der Datentyp ist in der Regel unter Windows auch mit Excel verknüpft wenn man einen Doppelklick auf so eine Datei macht.yokay hat geschrieben: ↑Donnerstag 16. August 2018, 07:13 Hallo liebe Leute,
bin relativ neu im programmieren und bräuchte eure Hilfe.
- Was es bisher kann: .txt Dateien einlesen und durch eine RegEx wichtige Informationen filtern.
- Mein Ziel: Die gefilterten Informationen in eine Excel Tabelle automatisch in Zeile und Spalte einfügen.
(Warum so umständlich denkt ihr bestimmt, ich möchte später automatisch Messwerte vom FTP runterladen und diesen Prozess automatisieren ) mit book of ra kostenlos spielen
Mein aktueller Code:
import re
file_object = open("C:\\Users\\yokay\\Desktop\\Excel_2018_03_07_00_03_27.txt", mode="r")
file_data = file_object.read()
result = r'\t([0-9]+)\t(-*[0-9]+\,*[0-9]*)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)\t(-*[0-9]+\,*[0-9]+)'
matches = re.finditer(result, file_data, re.MULTILINE)
for matchNum, match in enumerate(matches):
matchNum = matchNum + 0
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
Die Ausgabe in der Console:
Match 227 was found at 188681-189163: 1520377256 204,07 3,623 286,27 33,54 3,358 190,87 197,24 4,519 220,08 264,76 3,751 235,05 -29,22 -44,30 -12,37 2,097 -14,55 30,30 -3,174 3,799 -34,30 -44,29 -35,99 2,474 9,572 11,81 -4,243 2,873 20,43 2,924 31,84 5,504 4,124 -5,530 0,6328 149,70 3,765 160,29 72,27 157,00 3,251 262,33 -1,313 4,191 83,07 4,281 109,80 144,60 4,654 197,33 259,22 4,162 190,59 49,89 3,511 138,78 140,93 9,612 3,005 10,33 0,2771 -15,63 4,364 -8,474 -0,9014 4,798 154,35 5,920 116,03 155,04 2,919 124,87
Die "1520377256" Ist zum Beispiel ein Gerät und die Zahlen dahinter sind Messungen die ich gerne in Excel automatisch einschreiben lassen möchte.
Habt ihr vielleicht Anregungen bzw. eine eine bessere Lösung oder ist das überhaupt möglich? oder oder oder?
Ich bedanke mich ganz herzlich im voraus!!
Mfg!