Python(Spyder) RegEx Auswertung nach Excel übertragen

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@yokay: Ja, das vorhaben ist realisierbar.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
yokay
User
Beiträge: 26
Registriert: Mittwoch 15. August 2018, 13:50

@__blackjack__ danke für die Antwort, dann hab ich ja Hoffnung :D
yokay
User
Beiträge: 26
Registriert: Mittwoch 15. August 2018, 13:50

@__deets__ danke für deine Antwort.

Ja, nur deswegen. Vielen dank für den Tipp mit Python in kombination mit Bokeh! Das wird mir bestimmt weiter helfen!

Lg.
Appleton
User
Beiträge: 1
Registriert: Donnerstag 17. Januar 2019, 15:37

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!
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.
Antworten