web-dev-qa-db-fra.com

Glisser-déposer sur un script Python dans l'Explorateur Windows

Je voudrais glisser et déposer mon fichier de données sur un script Python et le laisser traiter le fichier et générer une sortie. Le script Python accepte le nom du fichier de données en tant que paramètre de ligne de commande, mais l'Explorateur Windows ne permet pas au script d'être une cible de dépôt.

Y a-t-il une sorte de configuration à faire quelque part pour ce travail?

45
grok

Sûr. Dans un article technologique mindless intitulé "Rendre les scripts Python destructibles dans Windows" , vous pouvez ajouter un gestionnaire de dépôt en ajoutant une clé de registre:

Voici un fichier d’importation de registre que vous pouvez utiliser pour cela. Copiez le suivant dans un fichier .reg et exécutez-le (Assurez-vous que vos extensions .py Sont mappées sur Python.File).

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Python.File\shellex\DropHandler]
@="{60254CA5-953B-11CF-8C96-00AA00B8708C}"

Cela oblige les scripts Python à utiliser le gestionnaire de dépôt WSH, compatible avec les noms de fichiers longs. Pour utiliser le gestionnaire de nom de fichier court, remplacez le GUID par 86C86720-42A0-1069-A2E8-08002B30309D.

Un commentaire dans cet article indique que l'on peut activer la suppression de "pas de fichiers Python de console (.pyw)" ou de "fichiers Python compilés (.pyc)" à l'aide des classes Python.NoConFile et Python.CompiledFile.

50
Blair Conrad

écrire un simple script shell (file.bat)

"c:\Python27\python.exe" yourprogram.py %1

où% 1 représente l'argument que vous transmettez au script.

Maintenant, glissez% déposez vos fichiers cibles sur l’icône file.bat.

26
marco

Avec un python installé - au moins 2.6.1 - vous pouvez simplement faire glisser un fichier sur un script python.

import sys
droppedFile = sys.argv[1]
print droppedFile

sys.argv[0] est le script lui-même. sys.argv[n+1] sont les fichiers que vous avez supprimés.

6
halanson

Essayez d'utiliser py2exe. Utilisez py2exe pour convertir votre script python en un exécutable Windows. Vous devriez alors pouvoir glisser-déposer les fichiers d'entrée dans votre script dans l'Explorateur Windows. Vous devriez également pouvoir créer un raccourci sur votre bureau et y déposer des fichiers d'entrée. Et si votre script python peut prendre une liste de fichiers, vous devriez pouvoir glisser-déposer plusieurs fichiers sur votre script (ou raccourci).

5
Evan

Créez un raccourci du fichier. Si les fichiers .py ne sont pas ouverts par défaut avec Python, accédez aux propriétés du raccourci et modifiez la cible du raccourci pour inclure la version python que vous utilisez. Par exemple:

Cible: C:\Python26\python.exe <chemin cible du raccourci>

Je publie cela parce que je ne voulais pas modifier le registre et que la solution de contournement .bat ne fonctionnait pas pour moi.

2
horta

1). créer un raccourci de .py
2). clic droit -> propriétés
3). le préfixe "Target:" avec "python" afin qu'il exécute le .py en tant qu'argument dans la commande python
ou
1). créer un .bat
2). python un peu.py% *

ces versions de raccourci sont les plus simples pour moi de faire ce que je fais
sinon je le convertirais en un fichier .exe, mais utiliserais plutôt Java ou c/c ++

0
Puddle