Möglichkeiten von Python

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
black perl
User
Beiträge: 3
Registriert: Montag 17. November 2014, 14:07

Hallo liebe Python-Gemeinde.

Ich bin ein Neuling, was Python angeht. Aber bereit, neue Sachen zu lernen.
Ich stehe vor folgendem Problem:

Ich habe zwei Excel-Arbeitsmappen.
In der ersten sind drei Tabellen mit je 500.000 Datensätzen (z.B. Name, Adresse, Telefon, Kundennummern)
In der zweiten befindet sich eine Tabelle mit etwa 35.000 Datensätze (Kundennummern, Geldbetrag).

Diese zweite Tabelle habe ich nun in Excel mit den ersten dreien verglichen (mittels INDEX, Vergleich und Matrix).
Dieser Vergleich dauert auf meinem Officerechner, den ich auf der Arbeit zur Verfügung habe, etwa 6 Std, in denen der Rechner dann zu nahezu 100% ausgelastet ist.

Nun Frage ich mich (bervor ich anfange, Python zu lernen), ob es möglich ist, in Python ein Programm zu schreiben, welches beide Excel-Dateien einliest, vergleicht und am Ende eine neue Datei schreibt, in denen er zu den etwa 35.000 Datensätzen zusätzlich die Angaben aus der ersten Datei (also Name und Adresse z.B.) mit hineinschreibt.


Ich möchte gar keine Lösung für mein Problem.
Ich möchte nur wissen, ob dies in Python möglich ist, bevor ich dann im Selbststudium diese Sprache lernen möchte...
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

@black perl: ja sowas ist möglich, ich würde sogar sagen, für solche Aufgaben ist Python sehr gut geeignet.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

black perl hat geschrieben:In der ersten sind drei Tabellen mit je 500.000 Datensätzen (z.B. Name, Adresse, Telefon, Kundennummern)
Insgesamt 1,5 Millionen Zeilen in Excel? Das ist ein typischer Fall von Ehda-Software ("Das Programm ist eh da, dann können wir es auch nutzen").

Ich würde die Daten in eine Datenbank schieben, bevor ich Software darauf los lasse.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

/me hat geschrieben: Ich würde die Daten in eine Datenbank schieben, bevor ich Software darauf los lasse.
+1 :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
black perl
User
Beiträge: 3
Registriert: Montag 17. November 2014, 14:07

vielen Dank für eure schnellen Antworten.
Damit hat Python einen neuen Lehrling gewonnen :)

Das mit der Datenbank habe ich auch schon überlegt...
mal sehen, wie ich nachher am Ziel ankomme, jetzt ist erstmal Tutorial-Time für die nächsten Tage / Wochen...
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

@/me: man könnte zum Beispiel ein Pythonskript schreiben, das die Excel-Tabelle nimmt und in eine Datenbank überführt. (Micro-Office-ianer würden wohl statt Datenbank Access sagen :twisted: ).
Malta
User
Beiträge: 83
Registriert: Samstag 8. Januar 2011, 23:51

Oder die Exceltabellen in ein Warenwirtschaftsystem überführen. Die werden mit der Zeit ja nicht kleiner.
Da gibt es kostenlose die auf Python basieren wie http://cuon.org/ oder
http://www.openerp-e.com/ openERP jetzt Odoo, bietet auch eine kostenpflichtigen Service an, aber der Quellcode kann heruntergeladen werden, https://www.odoo.com/page/download
black perl
User
Beiträge: 3
Registriert: Montag 17. November 2014, 14:07

Sirius3 hat geschrieben:@/me: man könnte zum Beispiel ein Pythonskript schreiben, das die Excel-Tabelle nimmt und in eine Datenbank überführt. (Micro-Office-ianer würden wohl statt Datenbank Access sagen :twisted: ).
Da bin ich leider an die Software-Vorgaben meines Arbeitgebers gebunden...
Und die sind leider nicht so leicht für neues (oder sollte ich sagen "anderes als das, was derzeit bekannt bei uns ist?) zu begeistern.
Zumal wir bei uns auch von einer nicht unerheblichen Anzahl von Lizenzen mit LTS sprechen...
Und da scheint M$ wohl recht gut dazustehen...

edit: Würdet ihr mir zu Python 2 oder Python 3 raten? Wenn ich es bisher richtig gelesen habe, ist 2 ja nicht zwingend Voraussetzung für 3... Außerdem wird auf einigen Seiten sogar extra dazu geraten, mit Python 3 anzufangen, weil es "die Zukunft" sei...
Gibt es Argumente, die (für mich als (absoluter) Anfänger und mein Vorhaben) für Python 2 sprechen?
BlackJack

@black perl: Der Edit hat's in sich. Das ist eine Frage die religiös angehauchte, fanatische Diskussionen nach sich ziehen kann. :-)

Du musst halt schauen ob es alles was Du an Abhängigkeiten brauchen wirst, schon für Python 3 gibt.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

black perl hat geschrieben:Würdet ihr mir zu Python 2 oder Python 3 raten?
Du hast mehrere Input-Dateien und möchtest eine Output-Datei. Das geht prima mit Python 2 und Python 3. Wenn intermediär eine Datenbank sinnvoll ist - und Deine Aufgabe sieht schwer danach aus - dann kannst Du z.B. SQLAlchemy nutzen, das mittlerweile auch unter Python 3 läuft. Mein Rat aufgrund der bisherigen Info: Python 3. Langsam wird die Zeit reif für Python 3. :)
BlackJack

@kbr: Wobei man bei SQLAlchemy nicht nur auf das Package selbst achten muss, sondern ob das DBMS was man nutzen möchte oder muss, auch unterstützt wird.
bb1898
User
Beiträge: 200
Registriert: Mittwoch 12. Juli 2006, 14:28

BlackJack hat geschrieben:@kbr: Wobei man bei SQLAlchemy nicht nur auf das Package selbst achten muss, sondern ob das DBMS was man nutzen möchte oder muss, auch unterstützt wird.
Und falls das Access sein muss, fürchte ich, mit SQLAlchemy sieht es schlecht aus, egal ob Python 2 oder Python 3. Ohne ORM müsste mit adodbapi alles Nötige gehen, und xlrd zum Export der Excel-Dateien scheint auch mit Python 3 zu funktionieren. Keine eigene Erfahrung, ich habe MSOffice gleich nach der Pensionierung in ein virtuelles Freudenfeuer geworfen, das war, glaube ich, noch vor der Freigabe von Python 3.0. Seitdem muss ich nur noch Exporte aus Access-Datenbanken im häuslichen Intranetchen veranstalten, schlimm genug.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@BlackJack, @bb1898: Ihr beide habt ja recht. Wenn ein Requirement für Python 3 oder SQLAlchemy (oder was auch immer) nicht erfüllt ist, dann geht es damit eben nicht. Das ist aber auch trivial - nicht wahr? Unschön wird es, wenn dies erst mitten im Projekt auffällt. Nun denn - hoffen wir das beste; z.B. dass statt Access SQLite genutzt werden darf (kommt ja mit Python). Dann klappt's auch mit SQLAlchemy wieder.
Antworten