साथ काम नहीं कर रहा है जब मैं का उपयोग कर खिड़कियों पर निम्नलिखित स्क्रिप्ट चलाने stdout और stderr की सामग्री को प्राप्त करने में सक्षम होना चाहता हूँ pythonw.exe:उपप्रक्रिया popen pythonw.exe
import subprocess
import sys
import os
import string
import time
tmpdir = 'c:/temp'
cmd = 'dir c:'
tmpfile = "tmp_%f" % (time.time())
tmpfile = os.path.normpath(os.path.join(tmpdir,tmpfile))
tmpfile2 = tmpfile+".bat"
tmpfile3 = tmpfile+".txt"
fa = open(tmpfile2,'w')
fa.write("@ECHO OFF > NUL\n")
fa.write('call '+cmd+"\n")
fa.close()
wcmd = []
wcmd.append(tmpfile2)
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess._subprocess.STARTF_USESHOWWINDOW
fb = open(tmpfile3,'w')
fb.write("\n")
fb.write(tmpfile2+"\n")
try:
procval = subprocess.Popen(wcmd, startupinfo=startupinfo, stdout=subprocess.PIPE, stderr=subprocess.STDOUT).communicate()
fb.write(str(procval)+"\n")
fb.write("Sucess")
fb.close()
except:
fb.write(str(procval)+"\n")
fb.write("Failure")
fb.close()
जब मैं यह अजगर का उपयोग कर निष्पादित .exe मुझे अपेक्षित आउटपुट मिलता है। जब मैं इसे pythonw.exe का उपयोग करके चलाता हूं तो मैं अपवाद पक्ष पर समाप्त होता हूं। यदि मैं केवल कमांड के साथ पॉपन चलाता हूं और स्टार्टअपइन्फो झंडे कमांड सफलतापूर्वक पूरा हो जाएंगे लेकिन बाल प्रक्रियाओं में डेटा तक पहुंच नहीं होगी। जो कुछ भी मैंने पढ़ा वह कहा कि यह काम करना चाहिए लेकिन कुछ याद आना चाहिए। किसी भी तरह की सहायता का स्वागत किया जाएगा।
धन्यवाद, रैंडी
क्या आप अपवाद जानकारी लॉग इन करते हैं? – jdi
मैंने कोशिश की है लेकिन सफल नहीं है। अपवाद जानकारी प्राप्त करने के तरीके पर किसी भी विचार को दोहराने के लिए यह आसान विचार है और इसे – user1352650
मुझे समझ नहीं पाएगा। आपके पास कोड है जो ब्लॉक को छोड़कर सामान्य जेनरेट करता है फिर भी आप हमें अपवाद नहीं दिखा सकते हैं? इसे यहां बदलें: "अपवाद को छोड़कर, ई" और ई लॉग ऑन करें। या बस अंत में उठाएं ताकि आप देख सकें कि त्रुटि क्या है – jdi