2008-09-27 10 views
43

में पायथन स्क्रिप्ट पर खींचें और छोड़ें, मैं अपनी डेटा फ़ाइल को पाइथन स्क्रिप्ट पर खींच और छोड़ना चाहता हूं और इसे फ़ाइल को संसाधित करना और आउटपुट उत्पन्न करना चाहता हूं। पायथन स्क्रिप्ट डेटा फ़ाइल के नाम को कमांड लाइन पैरामीटर के रूप में स्वीकार करती है, लेकिन विंडोज एक्सप्लोरर स्क्रिप्ट को ड्रॉप लक्ष्य होने की अनुमति नहीं देता है।विंडोज एक्सप्लोरर

क्या इस तरह के किसी भी कॉन्फ़िगरेशन को इस काम के लिए कहीं भी करने की आवश्यकता है?

+0

मुझे लगता है कि यह सिर्फ काम करता है अगर आपने विंडोज सेटअप इंस्टॉलर से पायथन स्थापित किया है (मूल रूप से यदि आप एक पायथन स्क्रिप्ट चलाने के लिए डबल क्लिक कर सकते हैं) –

उत्तर

49

निश्चित रूप से। mindless technology article called "Make Python Scripts Droppable in Windows" से, आप रजिस्ट्री कुंजी जोड़कर एक ड्रॉप हैंडलर जोड़ सकते हैं:

यहां एक रजिस्ट्री आयात फ़ाइल है जिसका उपयोग आप इसे करने के लिए कर सकते हैं। एक 0reg फ़ाइल में को कॉपी करें और इसे चलाएं (सुनिश्चित करें कि आपके .py एक्सटेंशन को Python.File पर मैप किया गया है)।

Windows Registry Editor Version 5.00 

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

यह पाइथन स्क्रिप्ट WSH ड्रॉप हैंडलर, जो लंबे समय फ़ाइल नाम के साथ संगत है का उपयोग करता है। लघु फ़ाइल नाम हैंडलर का उपयोग करने के लिए, GUID को 86C86720-42A0-1069-A2E8-08002B30309D के साथ बदलें।

उस पोस्ट में एक टिप्पणी इंगित करता है कि एक Python.NoConFile और Python.CompiledFile कक्षाओं का उपयोग करके पर "कोई सांत्वना अजगर फ़ाइलें (.pyw)" या "संकलित अजगर फ़ाइलें (.pyc)" हटा कर सक्षम कर सकते हैं।

+0

आप फ़ाइल कहां छोड़ते हैं? कंसोल विंडो में? या स्क्रिप्ट फ़ाइल आइकन पर? मैं पीछा नहीं कर रहा हूँ। – Greg

+3

स्क्रिप्ट फ़ाइल आइकन पर। –

+1

क्या आप क्रैश होने पर भी इसे त्रुटि प्रिंट कर सकते हैं? – Norfeldt

5

py2exe का उपयोग करने का प्रयास करें। अपनी पायथन स्क्रिप्ट को विंडोज़ निष्पादन योग्य में बदलने के लिए py2exe का उपयोग करें। इसके बाद आपको विंडोज एक्सप्लोरर में अपनी स्क्रिप्ट में इनपुट फ़ाइलों को खींच और छोड़ना चाहिए। आपको अपने डेस्कटॉप पर शॉर्टकट बनाने और इनपुट फ़ाइलों को उस पर ड्रॉप करने में भी सक्षम होना चाहिए। और यदि आपकी पायथन स्क्रिप्ट एक फ़ाइल सूची ले सकती है तो आपको अपनी स्क्रिप्ट (या शॉर्टकट) पर एकाधिक फ़ाइलों को खींचने और छोड़ने में सक्षम होना चाहिए।

+1

पर एक कठोर त्रुटि प्रिंटिंग चीज़ है, यह दृष्टिकोण PyInstaller के साथ भी काम करता है। – franzlorenzon

24

एक सरल खोल स्क्रिप्ट (file.bat) लिखने

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

जहां% 1 एफआईआर तर्क आप स्क्रिप्ट को पारित करने के लिए खड़ा है।

अब अपनी लक्ष्य फ़ाइलों को file.bat आइकन पर खींचें% खींचें।

+7

"सी: \ पायथन 27 \ python.exe" yourprogram.py% * एकाधिक ड्रैग किए गए फ़ाइलों को कैप्चर करने के लिए – sjtaheri

1

फ़ाइल का शॉर्टकट बनाएं। यदि आपके पास डिफ़ॉल्ट रूप से पाइथन ओपन .py फ़ाइलें नहीं हैं, तो शॉर्टकट के गुणों में जाएं और शॉर्टकट के लक्ष्य को संपादित करें जिसमें आप उपयोग कर रहे पायथन संस्करण को शामिल कर सकते हैं। उदाहरण के लिए:

लक्ष्य: C: \ Python26 \ python.exe < शॉर्टकट लक्ष्य पथ>

मैं इस पोस्ट कर रहा हूँ क्योंकि मैं रजिस्ट्री और .bat वैकल्पिक हल संपादित करने के लिए काम नहीं किया नहीं करना चाहता था मेरे लिए।

2

एक स्थापित पायथन के साथ - कम से कम 2.6.1 - आप किसी भी फ़ाइल को एक पायथन स्क्रिप्ट पर खींच और छोड़ सकते हैं।

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

sys.argv[0] स्क्रिप्ट स्वयं ही है। sys.argv[n+1] वे फ़ाइलें हैं जिन्हें आपने छोड़ा है।

+0

यह उत्तर सबसे सरल और आसान है। इसके अलावा, इसे exy में परिवर्तित करने के बाद py2exe (पायथन 3.3 का उपयोग करके) के साथ काम करने के लिए परीक्षण किया गया। – Splic

संबंधित मुद्दे