2008-09-27 12 views
43

Je voudrais glisser et déposer mon fichier de données sur un script Python et le faire traiter le fichier et générer des résultats. Le script Python accepte le nom du fichier de données en tant que paramètre de ligne de commande, mais l'Explorateur Windows n'autorise pas le script à être une cible de dépôt.Faites glisser et déposez sur le script Python dans l'Explorateur Windows

Y at-il une sorte de configuration qui doit être fait quelque part pour ce travail?

+0

Je pense que cela fonctionne si vous avez installé python à partir du programme d'installation de Windows (en gros si vous pouvez double-cliquer pour exécuter un script python) –

Répondre

49

Bien sûr. A partir d'un mindless technology article called "Make Python Scripts Droppable in Windows", vous pouvez ajouter un gestionnaire d'abandon 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 à Python.File).

Windows Registry Editor Version 5.00 

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

Cela rend les scripts Python utilisent le gestionnaire de chute de WSH, qui est compatible avec les noms longs. Pour utiliser le gestionnaire de nom de fichier court, remplacez le GUID avec 86C86720-42A0-1069-A2E8-08002B30309D.

Un commentaire à ce poste indique que l'on peut activer tomber sur « aucun fichier Python console (.pyw) » ou « compilé les fichiers Python (.pyc) » en utilisant les classes Python.NoConFile et Python.CompiledFile.

+0

Où abandonnez-vous le fichier? Dans la fenêtre de la console? Ou sur l'icône du fichier de script? Je ne suis pas. – Greg

+3

Sur l'icône du fichier de script. –

+1

Pouvez-vous également faire imprimer l'erreur si elle se bloque? – Norfeldt

5

Essayez d'utiliser py2exe. Utilisez py2exe pour convertir votre script python en un exécutable Windows. Vous devriez alors pouvoir glisser et déposer des fichiers d'entrée dans votre script dans l'Explorateur Windows. Vous devriez également être capable de 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 et déposer plusieurs fichiers sur votre script (ou raccourci).

+1

Cette approche fonctionne aussi avec PyInstaller. – franzlorenzon

24

écrire un simple script shell (fichier.bat)

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

où% 1 représente l'argument des sapins vous passez au script.

Faites maintenant glisser% déposer vos fichiers cible sur l'icône file.bat.

+7

"c: \ Python27 \ python.exe" yourprogram.py% * Pour capturer plusieurs fichiers glissés – sjtaheri

1

Créez un raccourci du fichier. Dans le cas où vous n'avez pas de fichiers python open .py par défaut, allez dans les propriétés du raccourci et éditez la cible du raccourci pour inclure la version python que vous utilisez. Par exemple:

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

Je poste parce que je ne voulais pas modifier le Registre et la solution de contournement .bat ne fonctionne pas pour moi.

2

Avec un python installé - au moins 2.6.1 - vous pouvez simplement glisser et déposer n'importe quel 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.

+0

Cette réponse est la plus simple et la plus simple. En outre, testé pour fonctionner avec py2exe (en utilisant Python 3.3) après qu'il a été converti en un exe. – Splic