Hallo zusammen,
ich habe eine Skript geschrieben, welches beim Aufruf eine csv-Datei übergeben bekommt, diese ausliest, die Daten in eine andere Anordnung bringt und diese in einer umbenannten csv-Datei wieder ausgibt. Das Skript funktioniert soweit.
Mein Problem ist nun, dass es für die Anwender so einfach wie möglich gehalten werden muss, dieses Skript auszuführen. Meine erste Idee war es das Skript mit py2exe in eine ausführbare Datei umzuwandeln und dann über das Kontexmenü des Explorers einen Menüpunkt zu erzeugen. So muss man nur auf die csv-Datei einen Rechtsklick durchführen und dann den Menüpunkt auswählen. Die ausführbare Datei tut das, was sie soll, wenn ich sie in der Windows-Shell ausführe.
Ich habe im Netz verschiedene Anleitungen, wo man in den Tiefen der Registry diesen Menüpunkt anlegen kann, gefunden, jedoch führt keine zum Erfolg. Der Menüpunkt erscheint zwar so wie gewünscht, jedoch öffnet sich bei der Anwahl des Menüpunktes nur kurz das Konsolenfenster und sonst passiert nichts, es wird also keine Datei erstellt.
Auch wenn ich die Ausführung des Skripts mit sleep künstlich hinauszögere öffnet sich das Fenster nur für den Bruchteil einer Sekunde.
Hat jemand eine Idee, woran das liegen könnte oder eine andere Idee, wie man möglichst einfach den Anwender das Skript auf eine gegebene csv-Datei ausführen lassen kann?
Python Skript in Kontext-Menü des Windows-Explorer einbinden
dein Pythonscript wirft irgendeine Exception und darum wird dein sleep auch nicht ausgeführt. Du kannst für Testzweche (und nur für Testzwecke) ein try-except Block um das ganze Skript machen und dann im except Teil den Fehler ausgeben lassen und zusätzlich noch die Pause einbauen.
Sonst kannst du auch den Quellcode zeigen, damit der Fehler gefunden werden kann.
Code: Alles auswählen
try:
a[3]
except Exception as inst:
print type(inst)
print inst
Jupp, danke, das war's! Bei der Übergabe der Datei als Parameter übergibt Windows den kompletten Pfad. Da die Ausgabedatei vom Namen der übergebenen Datei abgeleitet wird kam es hier zu einem Fehler.
Danke nochmal, jetzt läuft's so wie ich mir das vorstelle.
Danke nochmal, jetzt läuft's so wie ich mir das vorstelle.