मैं subprocess के माध्यम से rtmpdump को कॉल कर रहा हूं और अपने आउटपुट को फ़ाइल में रीडायरेक्ट करने का प्रयास कर रहा हूं। समस्या यह है कि मैं बस इसे पुनर्निर्देशित नहीं कर सकता।पायथन: मैं इस आउटपुट को रीडायरेक्ट कैसे करूं?
मैंने पहली बार खोले गए फ़ाइल में sys.stdout सेट करने का प्रयास किया। यह कहता है, ls, लेकिन rtmpdump के लिए नहीं। मैंने sys.stderr को बस सुनिश्चित करने के लिए सेट करने का प्रयास किया और यह भी काम नहीं किया।
मैंने कमांड लाइन तर्क के साथ ">> फ़ाइल" का उपयोग करने की कोशिश की लेकिन फिर से यह काम नहीं कर रहा है।
रिकॉर्ड के लिए, किसी कारण से, ग्रहण rtmpdump के आउटपुट प्रिंट करता है भले ही मैं subprocess.check_output के बजाय subprocess.call का उपयोग करता हूं, और प्रिंट विधि को कॉल किए बिना। यह काला जादू है!
कोई सुझाव?
संपादित करें: यहां कुछ नमूना कोड दिया गया है।
# /!\ note: need to use os.chdir first to get to the folder with rtmpdump!
command = './rtmpdump -r rtmp://oxy.videolectures.net/video/ -y 2007/pascal/bootcamp07_vilanova/keller_mikaela/bootcamp07_keller_bss_01 -a video -s http://media.videolectures.net/jw-player/player.swf -w ffa4f0c469cfbe1f449ec42462e8c3ba16600f5a4b311980bb626893ca81f388 -x 53910 -o test.flv'
split_command = shlex.split(command)
subprocess.call(split_command)
'stdout' आमतौर पर कुछ भी करने के बिना माता पिता के' stdout' पर पुनः निर्देशित हो जाता है डिफ़ॉल्ट रूप से। क्या आप वर्तमान में मौजूद कोड पोस्ट कर सकते हैं? –
नीचे मेरा जवाब देखें। आप subprocess.popen (..) – pyfunc
@pyfunc का उपयोग कर सकते हैं: मैं पॉपन का उपयोग करने के तरीके को समझने की कोशिश कर रहा हूं, मैं इसे आज़माउंगा। – dmc