2012-11-01 11 views
9

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

import subprocess, sys 
from subprocess import Popen, PIPE 
exe_str = r"C:/Windows/System32/cmd C:/temp/calc.exe" 

parent = subprocess.Popen(exe_str, stderr=subprocess.PIPE) 
+2

शायद स्टैक ओवरफ्लो पर यह पूछने के लिए बेहतर है? – Simbamangu

+1

क्या जीआईएस से संबंधित प्रश्न है? – Mapperz

+0

शायद आप सही हैं। इनपुट डेटा ऊंचाई और प्रवाह दिशा है इसलिए मैंने इसे यहां पोस्ट किया है। –

उत्तर

9

उपयोग subprocess.call, अधिक जानकारी here:

import subprocess 
subprocess.call(["C:\\temp\\calc.exe"]) 

या

import os 
os.system('"C:/Windows/System32/notepad.exe"') 

मैं आशा है कि यह आप में मदद करता है ...

+0

यह आउटपुट उत्पन्न किए बिना चलता है। मैंने cmd का उपयोग करके निष्पादन योग्य परीक्षण किया और आउटपुट उत्पन्न करने से पहले इसे कम से कम 2-3 सेकंड की आवश्यकता होती है। यह मुद्दा है, पायथन का उपयोग करके बाहर निकलने से पहले इसे 3 सेकंड तक कैसे बनाया जाए? –

+2

'आयात समय time.sleep (3)' – Aragon

+1

अजीब। यहां तक ​​कि 3 सेकंड की स्थिति के साथ भी यह कोई आउटपुट उत्पन्न नहीं किया। मैंने समय बढ़ाया लेकिन कोई फायदा नहीं हुआ। सुनिश्चित नहीं है कि समस्या और क्या हो सकती है। –

6

os.system विधि मूल्यह्रास हुआ है और नहीं होना चाहिए नए अनुप्रयोगों में प्रयोग किया जाता है। उपप्रोसेसर मॉड्यूल आपको जो चाहिए वह करने के लिए पाइथोनिक तरीका है।

यहाँ कुछ कोड मैंने लिखा कुछ सप्ताह पहले का उपयोग कर subprocess फ़ाइलें लोड करने के लिए, कमांड जब तक डेटा प्राप्त हो गया है और शुरू की कार्यक्रम पूरा करता है आप बाहर निकलने में देरी करने के उपयोग करने की आवश्यकता का एक उदाहरण है wait() है:

import subprocess 

cmd = "c:\\file.exe" 
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, creationflags=0x08000000) 
process.wait() 

creationflags=0x08000000 एक वैकल्पिक पैरामीटर है जो एक विंडो के लॉन्च को दबाता है, जो उपयोगी हो सकता है यदि आप जिस प्रोग्राम को कॉल कर रहे हैं उसे सीधे देखने की आवश्यकता नहीं है।

+0

यह अभी भी आउटपुट उत्पन्न नहीं कर रहा है। Cmd विंडो से पूरी तरह से चलाता है लेकिन आपके द्वारा सुझाए गए पायथनिक तरीके से कोई आउटपुट नहीं। –

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