Hallo liebe Forumsgemeinde, da in unserer Firma sehr viel "manuell" gemacht wird, habe ich immer wieder Skripte (meist Python) geschrieben, die CSV Datein so "umnudeln", dass sie von einer anderen Applikation/Maschinen gelesen werden können. Blöd ist nur - ich bin einer der einzige bin (wir sind kleines Handelsunternehmen), der sowas kann. Ist also quasi ein Hobby von mir (nicht mein eigentlicher Job...); die Leute bei uns sind alle total begeistert etwas neues zu lernen - aber halt "hartes Programmieren" ist zu viel; habe an VBA in Zukunft gedacht, was sie ggf. selbst dann lernen. Gibt es eine besser Lösung für "non-programers ;-)" Danke für Ideen! Tom
Tom schrieb: > CSV Datein so "umnudeln" Einfache Sachen lassen sich auch mit Excel bearbeiten und wieder als .csv abspeichern. Ein Excel-Lehrgang für Fortgeschrittene sollte das enthalten?
Tom schrieb: > CSV Datein so "umnudeln", > dass sie von einer anderen Applikation/Maschinen gelesen werden können. Was sind dabei die Aufgaben? Spalten vertauschen, Feldtrenner ändern, Zeilen Filtern, irgendwelche Umrechnungen, ...? Vor allem frage ich mich, ob die Aufgabe nicht vielleicht händisch in Excel und Co. zu erledigen sein könnte. Das ist weniger bequem, stellt aber gleichzeitig auch viel niedrigere Anforderungen an den Anwender. Tom schrieb: > "hartes Programmieren" ist zu viel Dann viel Glück. Was macht denn "hartes" Programmieren aus? Rein subjektiv: 1. Ein gewisser Zeitaufwand, um die Konstrukte einer Sprache zu erlernen. 2. Die Fähigkeit, in formalen Strukturen zu denken. 3. Die Fähigkeit, Probleme zu abstrahieren und sukzessive in lösbare Teilprobleme herunterzubrechen. An Punkt 1 kommt man nicht vorbei, egal ob es nun Python, VBA oder irgendetwas ganz anderes ist. Es gibt nichts geschenkt. An Punkt 2 kommt man auch nicht vorbei. Ich hatte schon ein paar mal das "Vergnügen" mit Leuten, die einfach nicht in der Lage sind, sich an formale Regeln wir z.B. die Syntax einer Sprache zu halten, insbesondere diese "man weiß doch, was gemeint ist"-Typen. Selbst wenn du das Problem Syntax durch eine visuelle Programmiersprache (so etwas wie Scratch) oder durch einen geführten Prozess wie den Funktions-Assistenten aus Excel umgehen könntest, scheitert man dann spätestens in dem Moment, in dem so etwas wie reguläre Ausdrücke erforderlich wird. Und an Punkt 3 kommt man höchstens bei Trivialproblemen vorbei. Ich halte Python bereits für eine gute Lösung und irgendeine Skriptsprache wird es sowieso werden, denn das ist genau der Ansatz für solche Problemstellungen. Wenn es niemanden gibt, der das wenigstens auf dem Niveau erlernen kann, dass er ein bereits vorhandenes Programm an die aktuellen Bedürfnisse anpassen kann, wird sich der Chef wohl andere Wege einfallen lassen müssen, um deinen Bus-Faktor zu reduzieren.
Python geht IMHO schon in die richtige Richtung, ist aber evtl. zu vielseitig für die konkrete Aufgabenstellungen, weswegen sich einige damit überfordert fühlen könnten. Ich würde deswegen unter Berücksichtigung der bisher durchgeführten "Umnudeleien" eine ganz einfache, speziell auf die konkreten Bedürfnisse zugeschnittene DSL entwerfen und diese als Python-Modul umsetzen. Das Ziel sollte dabei sein, die allermeisten der aktuell und zukünftig genutzten Konverter in maximal 5 bis 10 Codezeilen unter Verwendung einer sehr begrenzten Zahl von Sprachelementen implementieren zu können. Dazu müssen die Kollegen nur ein paar Grundlagen von Python und eben die einfache DSL erlernen. Das kann, am besten anhand einiger Beispiele für reale Aufgabenstellungen, sehr schnell geschehen.
Wieviele unterschiedliche csv's sind denn so zu bearbeiten? Ständig/regelmäßig neue oder immer wieder dieselben also z.B. jeder der 20 Kunden schickt ein anderes Format aber es sind eben auch halbwegs konstant nur die ~20 Kunden. Wie es scheint gibt es hier ein Problem mit den Datenschnittstellen das standardisiert werden sollte, eben um langfristig deine Arbeistzeit sinnvoller verwenden zu können.
:
Bearbeitet durch User
csv2xslx gibt es wie Sand am Meer, sogar in PyPi
Tom schrieb: > da in unserer Firma sehr viel "manuell" gemacht wird, habe ich immer > wieder Skripte (meist Python) geschrieben, die CSV Datein so "umnudeln", > dass sie von einer anderen Applikation/Maschinen gelesen werden können. > > Blöd ist nur - ich bin einer der einzige bin (wir sind kleines > Handelsunternehmen), der sowas kann. > > Ist also quasi ein Hobby von mir (nicht mein eigentlicher Job...); die > Leute bei uns sind alle total begeistert etwas neues zu lernen - aber > halt "hartes Programmieren" ist zu viel; habe an VBA in Zukunft gedacht, > was sie ggf. selbst dann lernen. Gibt es eine besser Lösung für > "non-programers ;-)" Hm... um Python mit dem csv-Modul zu benutzen, muß man vermutlich nicht den gesamten Sprachumfang beherrschen -- hat aber den Vorteil, ihn ausnutzen zu können, sofern sich dies einmal als notwendig erweisen sollte. Ansonsten gibt es natürlich das (in Python geschriebene) CSVKit [1] und den mächtigen Datenkonverter Logstash [2] aus dem ELK-Stack -- der zwar im Kern für Logdaten und Metriken vorgesehen ist, aber sehr viel mehr kann... [1] https://csvkit.readthedocs.io/en/latest/ [2] https://www.elastic.co/guide/en/logstash/current/introduction.html
CSVKit kann ich auch empfehlen. Besonders das csvsql Kommando darin finde ich unglaublich praktisch.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.