Python Skripte auf Windows mit Drag'n'Drop ohne GUI-Toolkit

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Hallo,

Dank stackoverflow.com habe ich mir eine Verknüpfung auf dem Desktop auf folgende CMD-Datei gebastelt:

Code: Alles auswählen

rem@echo off
setlocal ENABLEDELAYEDEXPANSION
rem Take the cmd-line, remove all until the first parameter
set "params=!cmdcmdline:~0,-1!"
set "params=!params:*" =!"
set count=0

rem Split the parameters on spaces but respect the quotes
for %%G IN (!params!) do (
  set /a count+=1
  set "item_!count!=%%~G"
  rem echo !count! %%~G
)

rem list the parameters
for /L %%n in (1,1,!count!) DO (
    echo !item_%%n!
    c:\PYTHON27\PYTHON.exe MEIN_PYTHON_SKRIPT.py !item_%%n!
)

if errorlevel 1 pause

REM ** The exit is important, so the cmd.ex doesn't try to execute commands after ampersands
exit
Damit kann man Dateien auf die Verknüpfung fallenlassen und diese werden als Parameter ans Skript übergeben.
Sehr praktisch, wenn man sich für kleine Skripte nicht mit GUI-Toolkits rumschlagen will.
Unter GNU/Linux vermutlich viel einfacher zu realisieren (wegen mächtigerer Shell).
AlphaX2
User
Beiträge: 53
Registriert: Dienstag 28. Juni 2011, 10:42

Unter Linux kann man einfach in der Bash mit $1 bis $9 die Parameter aufnehmen und entsprechend weitergeben mit z.B.:

Code: Alles auswählen

python /pfad/zu/meinem/Script/script.py $1
Grundsätzlich kann der Parameter halt alles sein, es kommt an der Stelle dann eher darauf an wie das Script die args dann behandelt. Cool is eben, dass im Linux, die kleine Shell Datei auch ins /usr/bin gelegt werden kann und dann quasi als normales Programm zur Verfügung steht, z.B. ausm Terminal heraus. Wie man das mit drag and drop machen kann, wüsste ich allerdings auf anhieb auch im Linux nicht, bzw. bin ich noch nie auf die Idee gekommen. :K

AlphaX2
BlackJack

@AlphaX2: Wie unsinnig ist das denn? Du kannst auch einfach *direkt* das Python-Skript ausführen statt eine Datei zu schreiben die das ausführt.

Ob etwas und was unter Linux passiert wenn man Dateien zum Beispiel aus einem Dateimanager zum Beispiel auf ein Icon auf dem Desktop zieht und „fallen” lässt, hängt von allen beteiligten Programmen ab, also Dateimanager und das Programm welches den Desktop-Hintergrund darstellt.
AlphaX2
User
Beiträge: 53
Registriert: Dienstag 28. Juni 2011, 10:42

Eigentlich war meine Antwort ja auch allgemeiner Natur, wie man es mit der Shell handhabt und dass es dort sehr einfach ist und sich auch leicht weitergeben lässt. Mit Python ist das ganze natürlich nur sehr mässig sinnvoll. :wink:

Edit: Einen Sonderfall wo es sinnvoll ist bildet z.B. das Nokia N9 und MeeGo Harmattan, dort kann es durch den "Schutz-Mechanismus" Aegis teils sinnvoll sein ein Shell-Script zu nehmen. Denn Aegis erkennt Manipulationen an den ausführbaren Dateien und sperrt im Zweifel das Gerät, daher wird oft ein Shell-Script genommen, weil das ja nur die *.py startet, diese dann aber munter weiter modifiziert werden kann, sogar direkt auf dem Gerät.
Antworten