Hi,
vielleicht kann mir hier jemand helfen:
Wenn ich im Windows Explorer eine Datei auf eine mit py2exe erstellte exe ziehe, wird die Datei mitsammt Pfad als sys.argv[1] übergeben.
Kann ich das gleiche Verhalten für einfache Python-Scripte erzielen, also wenn ich eine Datei auf script.py ziehe?
Es scheint mir die einfachste Art, Pfad+Datei an ein Script zu übergeben, aber jedesmal mit py2exe umwandeln ist dann doch etwas übertrieben. Momentan nehm ich den Umweg über die Shell, aber wenn es auch in der GUI geht wäre es noch etwas einfacher
Danke,
Sören
Drag'n drop im Windows Explorer auf Python-Scripte
hast du es denn schon ausprobiert?
das wäre das zeitschonenste, ich habe kein windows
das wäre das zeitschonenste, ich habe kein windows
http://www.cs.unm.edu/~dlchao/flake/doom/
das ist nicht eindeutig. sry, dass ich nicht deinen namen gelesen habe, einige leute, die ihren ersten post senden, fragen solche uä fragenKann ich das gleiche Verhalten für einfache Python-Scripte erzielen, also wenn ich eine Datei auf script.py ziehe?
http://www.cs.unm.edu/~dlchao/flake/doom/
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Wie seiht sys.argv aus, wenn du eine Datei auf ein python-Script schiebst?Nirven hat geschrieben:lol, ja hab ich. Sonst wüsste ich ja nicht, dass es bei einer exe geht, bei einer py nicht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi!Leonidas hat geschrieben:Wie seiht sys.argv aus, wenn du eine Datei auf ein python-Script schiebst?
Es kommt gar nich so weit, dass das Python-Programm gestartet wird. Ich habe das eben mal ausprobiert. Schiebt man per Drag & Drop eine Datei über eine Datei mit den Endungen ".EXE;.CMD;.BAT;.VBS...", dann wird das jeweilige Programm ausgeführt. Schiebt man eine Datei über das Icon einer Datei mit der Endung ".PY", dann passiert gar nichts. Nicht einmal das Drag-Symbol tauch auf. So wie es aussieht, blockiert Windows XP und nicht Python. Ändert man die Endung nach "EXE", dann würde das Skript ausgeführt werden. -- Aber das gibt natürlich Fehlermeldungen
Also müsste es im Windows irgendwo (wahrscheinlich irgendwo in der Registry versteckt) eine Einstellung geben, die man finden und korrekt einstellen muss.
lg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Öhm, sorry. Ja, mein Problem ist eher Windows als Python. Deswegen nur die wage Hoffnung, das hier trotzdem jemand Rat weiß, denn im Netz habe ich nichts dazu gefunden.
Und was nutzt mir mein Klicki-Bunti-XP, wenn die GUI nicht mal soetwas unterstützt? Mein Kollege wollte mir gar nicht glauben, dass es nicht geht. Dann benutz ich erstmal weiter die shell.
Und was nutzt mir mein Klicki-Bunti-XP, wenn die GUI nicht mal soetwas unterstützt? Mein Kollege wollte mir gar nicht glauben, dass es nicht geht. Dann benutz ich erstmal weiter die shell.
*.py Dateien sind "Dokumente", keine ausführbaren Dateien. Dass sie bei Doppelklick gestartet werden, liegt halt daran, dass sie mit python.exe (oder wie das executable auch immer heißt) verknüpft sind. Auf nen Dokument kann man nichts ziehen bei Windows.
Auf ein Batchfile als wrapper allerdings schon. Dort einfach argv an den Aufruf von python.exe dateiname.py anhängen...
(ja, kranke Wel.. äh Windows)
Auf ein Batchfile als wrapper allerdings schon. Dort einfach argv an den Aufruf von python.exe dateiname.py anhängen...
(ja, kranke Wel.. äh Windows)
Ne invoces expellere non possis
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich weiß nicht mehr genau, aber ich glaube, dass es bei Windows XP unter den Umgebungsvariablen eine gab, wo .VBS;.CMD;.BAT;usw eingetragen war. Vielleicht würde es helfen .PY dort anzuhängen?
Ist natürlich nur so eine Hypothese von mir.
Ist natürlich nur so eine Hypothese von mir.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Leonidas!Leonidas hat geschrieben:Vielleicht würde es helfen .PY dort anzuhängen?
Leider -- das bringt nichts. Das habe ich schon ausprobiert.
lg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hallo
Du bräuchtest dafür einen Drophandler. Sowas zu schreiben ist aber schwierig (Windows-Shellerweiterung).
Workaround wäre ein .cmd-Skript, dass Dein Python-Skript dann mit den übergebenen Parametern aufruft:
-Monk
Du bräuchtest dafür einen Drophandler. Sowas zu schreiben ist aber schwierig (Windows-Shellerweiterung).
Workaround wäre ein .cmd-Skript, dass Dein Python-Skript dann mit den übergebenen Parametern aufruft:
Code: Alles auswählen
START PYTHONW.EXE pyskript.py %*
Danke für eure Antworten.
Mit dem cmd-Skript funktioniert es aus der Kommandozeile, aus dem Explorer leider nicht (ich vermute ein Pfad-Problem).
Da es mit dem Batchfile aber ohne Probleme funktioniert bin ich zu faul, mich darum zu kümmern. Nicht perfekt die Lösung (dummes Windows), aber sehr nah dran, danke nochmal. Das spart Zeit und Nerven
Mit dem cmd-Skript funktioniert es aus der Kommandozeile, aus dem Explorer leider nicht (ich vermute ein Pfad-Problem).
Da es mit dem Batchfile aber ohne Probleme funktioniert bin ich zu faul, mich darum zu kümmern. Nicht perfekt die Lösung (dummes Windows), aber sehr nah dran, danke nochmal. Das spart Zeit und Nerven
Hab eine Lösung gefunden.
Einfach das in eine .reg-Datei einfügen, das verpasst Pythondateien den .exe Drophandler
Einfach das in eine .reg-Datei einfügen, das verpasst Pythondateien den .exe Drophandler
//edit: Funktioniert jetzt für alle Endungen (.py .pyc und .pyw)Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Python.File\shellex\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"
[HKEY_CLASSES_ROOT\Python.NoConFile\shellex\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"
[HKEY_CLASSES_ROOT\Python.CompiledFile\shellex\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Vielleicht wäre es mal schau, das an MvL weiterzuleiten, so dass er das in den Windows-Installer hinzufügen kann? Dann funktioniert es out-of-the-box.Actimehl hat geschrieben:Einfach das in eine .reg-Datei einfügen, das verpasst Pythondateien den .exe Drophandler
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Python.File\shellex\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"
[HKEY_CLASSES_ROOT\Python.NoConFile\shellex\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"
[HKEY_CLASSES_ROOT\Python.CompiledFile\shellex\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Also ich mach sowas einfach mit einer kleinen Batch Datei... Wie z.B. das hier:
Die Batchdatei ist dabei im selben Verzeichnis wie das Skript, also in dem Falle md5sum_calc.py... In dem Beispiel muß die python.exe im Pfad sein, aber man kann ja auch den Pfad in der CMD angeben
Code: Alles auswählen
python %~dp0\md5sum_calc.py %*
@echo pause...
@ping localhost>NUL
- nkoehring
- User
- Beiträge: 543
- Registriert: Mittwoch 7. Februar 2007, 17:37
- Wohnort: naehe Halle/Saale
- Kontaktdaten:
ach ja... tolle windozewelt... nichtmal bestimmen, welche dateien ausfuehrbar sind und welche nicht, darf der user dort ohne umstaende.
naja, die registry-loesung ist sicher schick. ich wuerde aber (wenn es in den installer eingebaut werden soll) empfehlen, die option mit einem haekchen zu versehen, so dass man sie bei der Installation deaktivieren kann.
naja, die registry-loesung ist sicher schick. ich wuerde aber (wenn es in den installer eingebaut werden soll) empfehlen, die option mit einem haekchen zu versehen, so dass man sie bei der Installation deaktivieren kann.
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Warum? Soweit ich mich erinnern kann, bindet der Installer auch .py-Dateien an Python, was eigentlich auch nicht schadet. Höchstens wenn man mehrere Python-Versionen gleichzeitig installiert hat.nkoehring hat geschrieben:ich wuerde aber (wenn es in den installer eingebaut werden soll) empfehlen, die option mit einem haekchen zu versehen, so dass man sie bei der Installation deaktivieren kann.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice