2012-01-01 14 views
9

मैं एक विशिष्ट फ़ाइल प्रकार (उदा।, * .foo) डिफ़ॉल्ट अनुप्रयोग होने के लिए पाइथन स्क्रिप्ट कैसे बना सकता हूं? जैसा कि, जब मैं खोजक/एक्सप्लोरर में फ़ाइल को डबल क्लिक करता हूं, तो मैं चाहता हूं कि फ़ाइल पाइथन लिपि में खुल जाए।पायथन स्क्रिप्ट के साथ विशिष्ट फ़ाइल प्रकार खोलें?

क्या यह विन और/या ओएस एक्स में करना संभव है? यदि यह मायने रखता है तो एप्लिकेशन एक पायसाइड ऐप है।

+0

आपके लिए जावा स्टब काम का आह्वान करेगा? http: // stackoverflow।कॉम/प्रश्न/550329/कैसे-से-ओपन-ए-फाइल-द-डिफॉल्ट-जुड़े-प्रोग्राम-अन्यथा मुझे पूरा यकीन है कि यदि आप एक पोर्टेबल समाधान चाहते हैं तो आप भाग्य से बाहर हैं। – kay

+0

उस प्रश्न से, मैं किसी भी एप्लिकेशन के साथ फ़ाइल खोलने का कोई तरीका नहीं ढूंढ पाया। लगता है कि 'ओपन' विधि केवल डिफ़ॉल्ट अनुप्रयोग में एक फ़ाइल खोलने लगती है। यहां तक ​​कि यदि आप कर सकते हैं, तो यह मेरे उत्तर से बेहतर समाधान नहीं होगा क्योंकि आपको पाइथन स्क्रिप्ट खोलने के लिए जावा एप्लिकेशन की आवश्यकता होगी। – potato

उत्तर

-1
  1. प्रकार के किसी भी फ़ाइल का पता लगाएं foo
  2. राइट क्लिक करें ->Get Info या फ़ाइल आइकन पर क्लिक करें, फिर जानकारी प्राप्त करें या फ़ाइल पर क्लिक करें क्लिक करें और हिट कमान + मैं
  3. Open With फलक जो दिखाता है, पाइथन बाइनरी
  4. का चयन करें एक बार चुने जाने पर, आप change All बटन
  5. पर क्लिक कर सकते हैं
  6. यह पुष्टि करने के लिए पूछते हैं, सिर्फ इतना कहना continue
+0

यह किस ओएस के लिए है? – Chris

+0

क्रिस, मैक ओएस एक्स –

+0

क्या * .app (जो py2app या कुछ से आया है) की बजाय * .py फ़ाइल चुनने का कोई तरीका है? '* .py' फ़ाइल के लिए – c00kiemonster

-4

विंडोज़ पर होगी:

  1. सही फ़ाइल क्लिक करें
  2. (मैं इस उदाहरण के लिए एक .docx फ़ाइल प्रयोग किया जाता) का चयन Open with...
  3. से अनुप्रयोग सूची, python
  4. वैकल्पिक का चयन करें:का चयन करें।

नोट: इस होगा रन अजगर खोल के संदर्भ में .docx फ़ाइल की सामग्री। फ़ाइल की सामग्री का मूल्यांकन करने के बाद यह तुरंत बंद हो जाएगा। यदि आप एक शब्द प्रोसेसर में फ़ाइल को संपादित करना चाहते हैं, तो शायद आपको notepad++ डाउनलोड करना चाहिए, और उस एप्लिकेशन को डिफ़ॉल्ट के रूप में चुनें।

+4

ओपी चाहता है कि एक विशेष फ़ाइल-प्रकार अपने स्वयं के पायथन स्क्रिप्ट_ के साथ खोलें, न कि पायथन के साथ। – ekhumoro

-1

मुझे अपने पुराने प्रश्न के उत्तर में यह पुराना प्रश्न मिला, और मैंने सोचा कि मैं अपना समाधान साझा करूंगा। मैंने तर्कों को एक पायथन लिपि में निर्देशित करने के लिए एक सरल सी प्रोग्राम का उपयोग किया, जिससे चीजों को काम करने के लिए इसे संकलित करने की आवश्यकता के बजाय पाइथन स्क्रिप्ट को स्क्रिप्ट रहना पड़ा। यहां मेरा सी प्रोग्राम है:

int main(int argc, char *argv[]){ 
    char cmd[0xFF]; 
    // For me, argv[1] is the location of the file that is being opened. I'm not sure if this is different on other OSes 
    snprintf(cmd,sizeof cmd,"python YOUR_PYTHON_SCRIPT_HERE.py -a %s", argv[1]); 
    system(cmd); 
    return 0; 
} 

मैंने फिर सी प्रोग्राम संकलित किया और फ़ाइल एक्सटेंशन के लिए डिफ़ॉल्ट एप्लिकेशन के रूप में सेट किया।
फिर, पाइथन लिपि में YOUR_PYTHON_SCRIPT_HERE।

with open(theFile,"r") as f: 
    fileContents = f.read() 
3

मैक ओएस एक्स

:

import sys 
assert len(sys.argv) > 2 # Breaks if you call the script without the arguments 
theFile = " ".join(sys.argv[2:]) # What the c program gives us 
print(theFile) # Print it out to prove that it works 

thefile फ़ाइल कि खोला जा रहा है
का उपयोग करके फ़ाइल की सामग्री जाओ के स्थान शामिल होंगे: py, मैं इस तरह तर्क प्राप्त

पर मैक ओएस एक्स आपको लगता है कि आपके अजगर अनुप्रयोग कॉल करता है और इनपुट फ़ाइल पैट गुजरता एक आवेदन बनाने के लिए स्वचालक उपयोग कर सकते हैं एक स्ट्रिंग तर्क के रूप में एच। आवेदन कार्यप्रवाह विज़ार्ड में, कार्रवाई "रन शैल स्क्रिप्ट" जोड़ने Pass input:as arguments के रूप में चयन करें, और पाठ बॉक्स में जोड़ें:

python /path/to/my/app/myapp.py "[email protected]" 

"[email protected]" गुजरता जो कुछ भी साथ तर्क इनपुट में थे (चयनित फ़ाइल उर्फ) के रूप में तार। जब तक आपकी स्क्रिप्ट स्ट्रिंग्स की सूची (पहला पाइथन ऐप पथ) के रूप में इनपुट (sys.argv) से निपटने के लिए सेट की जाती है, तो यह काम करेगी।

जब आप उस ऑटोमेटर वर्कफ़्लो को सहेजते हैं, तो ओएस एक्स द्वारा किसी अन्य ऐप की तरह इसका इलाज किया जाता है, और आप उस ऐप को "* .foo" प्रकार की फ़ाइलों के लिए डिफ़ॉल्ट के रूप में सेट कर सकते हैं। उस ऐप के साथ "* .foo" को जोड़ने के लिए, एक .foo फ़ाइल पर राइट क्लिक करें, Get Info, Open with: Other..., ऑटोमेटर में बनाए गए ऐप का चयन करें, फिर Change All... बटन पर क्लिक करें।

विंडोज

एक समान है, लेकिन उम्मीद है कि कम-से शामिल दृष्टिकोण Windows में काम कर सकते हैं।

python C:\path\to\my\app\myapp.py %* 

%* सभी तर्कों के लिए विस्तारित: आप शायद एक बैच फ़ाइल (.bat) निम्नलिखित के साथ बना सकते हैं।

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

0

उदाहरण के लिए, यहां एक सार्वभौमिक समाधान है जिसके लिए मैंने लिखा: 1) एक विंडोज डेस्कटॉप लिंक (* .URL) खोलना जिसे लिनक्स बॉक्स में कॉपी किया गया है। या 2) एक लिनक्स खोलना। डिस्कोटॉप लिंक जिसे विंडोज बॉक्स में कॉपी किया गया है।

# UseDesktopLink.py 
import sys 
import webbrowser 
script, filename = sys.argv 
file_object = open(filename,'r') 
for line in file_object: 
    if line[0:4]=="URL=": 
     url=line[4:] 
     webbrowser.open_new(url) 
file_object.close() 

Windows पर, संघ को संभालने के लिए (एक बल्ला फ़ाइल के माध्यम से) स्कॉट एच का विधि का उपयोग करें:

यहाँ Python स्क्रिप्ट है जो दोनों ही मामलों को संभालती है।

लिनक्स पर, एक विंडोज़ यूआरएल फ़ाइल पर राइट-क्लिक करें। गुण चुनें, और साथ खोलें। नया एप्लिकेशन जोड़ने के लिए जोड़ें पर क्लिक करें। फिर "एप्लिकेशन जोड़ें" विंडो के नीचे, "कस्टम कमांड का उपयोग करें" पर क्लिक करें। फिर UseDesktopLink.py फ़ाइल पर ब्राउज़ करें और खोलें क्लिक करें। लेकिन इससे पहले कि आप जोड़ें पर क्लिक करें, "कस्टम कमांड का उपयोग करें" के नीचे दिए गए टेक्स्टबॉक्स में, फ़ाइल नाम से पहले "पायथन" डालें (उद्धरण के बिना)। फिर जोड़ें और बंद करें पर क्लिक करें।

उम्मीद है कि मदद करता है।

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