विभिन्न समाधानों के भार हैं, और परिणाम दृढ़ता से इस पर निर्भर करेंगे:
- आप जिस OS का उपयोग कर रहे हैं: Windows, Cygwin, Linux, MacOS
- अजगर संस्करण आप उपयोग कर रहे हैं: पायथन 2 या पायथन 3 एक्स
जैसा कि मैंने कुछ चीजों की खोज की है जो केवल विंडोज में काम करने के लिए दावा किया जाता है, शायद इसलिए नहीं कि मैं सिग्विन का उपयोग करता हूं जो विंडोज पथ से निपटने के लिए ओएस तरीके को आउटसोर्स कर रहा है। अन्य चीजें केवल शुद्ध * निक्स आधारित ओएस या पायथन 2 या 3 में काम करती हैं।
यहाँ मेरे निष्कर्ष हैं:
- आम तौर पर बोलना,
os.system()
सबसे क्षमा करने की विधि है।
os.startfile()
सबसे कम क्षमा है। (Windows केवल && यदि आप भाग्यशाली हैं)
subprocess.Popen([...])
नहींअनुशंसित
subprocess.run(winView, shell=True)
अनुशंसित तरीका!
- यह याद रखना कि
subprocess
किसी भी चीज़ के लिए उपयोग करना सुरक्षा जोखिम पैदा कर सकता है ।
इन्हें कोशिश करें:
import os, subprocess
...
winView = '/cygdrive/c/Windows/explorer.exe %s' % somefile
...
# chose one of these:
os.system(winView)
subprocess.Popen(['/cygdrive/c/Windows/explorer.exe', 'somefile.png'])
subprocess.run(winView, shell=True)
क्यू: आप का उपयोग क्यों करना चाहते हैं explorer
विंडोज में ?
A: क्योंकि यदि आप किसी नई फ़ाइल के परिणामों को देखना चाहते हैं, तो एक्सप्लोरर स्वचालित रूप से उस फ़ाइल प्रकार के लिए आपके द्वारा सेट किए गए डिफ़ॉल्ट विंडो प्रोग्राम के साथ फ़ाइल को खोल देगा। तो उपयोग करने के लिए डिफ़ॉल्ट प्रोग्राम को फिर से निर्दिष्ट करने की आवश्यकता नहीं है।