अद्यतन: जब मैं का उपयोग subprocess.Popen
के बजाय subprocess.call
, समस्या हल हो जाता है - किसी को भी कारण क्या है पता है? और एक और समस्या आई: मुझे आउटपुट को नियंत्रित करने का कोई तरीका नहीं दिख रहा है ... क्या आउटपुट को subprocess.call
से स्ट्रिंग या उस तरह से रीडायरेक्ट करने का कोई तरीका है? धन्यवाद! जब मैं एक अजगर का उपयोग Popen(cmd,shell=true)
का उपयोग कर जहां cmd
के रूप में ऊपर एक ही पंक्ति है इसे चलाने के लिए लेकिन, -जब मैं कॉन्फ़िगर साथ devenv चलाने के लिए एक अजगर स्क्रिप्ट लिखने "डीबग | Win32" यह करता है कुछ भी नहीं
मैं Devenv
उपयोग करने के लिए परियोजनाओं का निर्माण करने की कोशिश कर रहा हूँ, और यह ठीक चलता है जब मैं devenv A.sln /build "Debug|Win32"
की तरह कमांड प्रॉम्प्ट इसमें लिखें यह कुछ भी नहीं दिखाता है। अगर मैं |
हटा देता हूं, तो इसे केवल "Debug"
पर बदलें, यह काम करता है ....
क्या कोई जानता है कि ऐसा क्यों होता है? मैं एक \
से पहले |
डालने की कोशिश की है, लेकिन अभी भी कुछ नहीं हुआ ..
इस कोड मैं का उपयोग कर रहा है:
from subprocess import Popen, PIPE
cmd = ' "C:\\Program Files\\Microsoft Visual Studio 8\\Common7\\IDE\\devenv" solution.sln /build "Debug|Win32" '
sys.stdout.flush()
p = Popen(cmd,shell=True,stdout=PIPE,stderr=PIPE)
lines = []
for line in p.stdout.readlines():
lines.append(line)
out = string.join(lines)
print out
if out.strip():
print out.strip('\n')
sys.stdout.flush()
... जो काम नहीं करता है, फिर भी, अगर मैं Debug|Win32
स्वैप Debug
के साथ, यह पूरी तरह से हर टिप्पणी यहाँ के लिए काम करता ..
धन्यवाद
बस मेरे सिर में पॉप-अप किया गया एक झटका, जिसे आपने पॉप किया था/क्या आप आयात विवरण दिखा सकते हैं? –
ज़रूर, यह है: उपप्रक्रिया आयात popen, पाइप पी = popen (cmd, खोल = सच, stdout = पाइप, stderr = पाइप) जहां cmd की तरह 'कुछ तो है ".. (पथ)/devenv" समाधान से/निर्माण "डीबग | Win32" ... ऐसा लगता है | संकेत पूरे आदेश को अनदेखा कर देता है ... –
मुझे पता चला कि अजगर में मक्खी, जो पूरे 'devenv.com' आदेश होता है पर एक compile.bat फ़ाइल बनाने, और उसके बाद का उपयोग कर' Popen' एक आकर्षण की तरह काम करता अजगर से कि compile.bat चल रहा है। –