मैं एक एसवीएन प्रतिबद्ध करने के लिए पाइथन का उपयोग कर रहा हूं, और मैं एक लॉग फ़ाइल में एसवीएन कमांड का आउटपुट लिखना चाहता हूं। मेरे पास जो कोड है वह एसवीएन चला सकता है, लेकिन समस्या यह है कि एक सफल प्रतिबद्धता पर, subprocess
आमंत्रण मेरे लॉग के लिए कोई आउटपुट वापस नहीं करता है।subprocess.Popen(), stderr और stdout का उपयोग करते समय कोई आउटपुट
जब मैं मैन्युअल रूप से एसवीएन चलाता हूं, तो मुझे आउटपुट मिलता है जो कमांड की प्रगति दिखाता है और दिखाता है कि कौन सी फाइलें की जा रही हैं। मैं अपनी लॉग फ़ाइल में यही चाहता हूं। क्या एसवीएन उस डेटा को स्टडआउट या स्टेडर से बफर में आउटपुट कर रहा है? मैं अपने लॉग के लिए उस डेटा को कैप्चर कैसे कर सकता हूं?
cmd = "svn commit --non-interactive --no-auth-cache -m 'Automatic commit' ./"
process = subprocess.Popen(cmd,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True)
result = process.wait()
# Output
out = process.stdout.read()
err = process.stderr.read()
मुझे इस कोड चलाने के लिए और प्रतिबद्ध सफल होता है, out
और err
चर दोनों खाली हैं:
यहाँ कोड मैं का उपयोग कर रहा है।
कैसे आपको लगता है कि ऐसा करने के लिए लॉगिन क्रेडेंशियल भेज सकता हूँ? मैं वही कोशिश कर रहा हूं और यह पता नहीं लगा सकता कि इसके लिए उपयोगकर्ता नाम और पासवर्ड कैसे भेजना है –