मैं पृष्ठभूमि में एक प्रक्रिया खोलना चाहता हूं और इसके साथ बातचीत करना चाहता हूं, लेकिन यह प्रक्रिया लिनक्स और विंडोज दोनों में अदृश्य होनी चाहिए। विंडोज में आप, STARTUPINFO के साथ कुछ सामान करना है, जबकि इस लिनक्स में मान्य नहीं है:छिपी हुई खिड़की के साथ क्रॉस-प्लेटफॉर्म सबप्रोसेस
ValueError: startupinfo is only supported on Windows platforms
वहाँ प्रत्येक ओएस के लिए एक अलग popen आदेश बनाने की तुलना में एक सरल तरीका है?
if os.name == 'nt':
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
proc = subprocess.Popen(command, startupinfo=startupinfo)
if os.name == 'posix':
proc = subprocess.Popen(command)
आह। मैंने startupinfo = '' की कोशिश की थी और यह काम नहीं किया। यही वह जवाब है जिसे मैं ढूंढ रहा था। – endolith
मैंने उपरोक्त कोड के माध्यम से यह देखने के लिए देखा कि वे उस त्रुटि संदेश को कैसे उत्पन्न करते हैं और वे जांचते हैं कि स्टार्टअपइन्फो कोई नहीं है, जैसा कि पाइथन –
में होना चाहिए यदि आप 'STARTF_SHOWWINDOW' सेट करते हैं, तो आप' wShowWindow 'सदस्य को भी प्रारंभ करना चाहते हैं 'SW_ *' स्थिरांक में से एक को 'startupinfo''। यह विधि उस प्रोग्राम पर निर्भर करती है जिसे आप वास्तव में 'wShowWindow' ध्वज पर अभिनय करते हैं; ऐसा करने की आवश्यकता नहीं है। –