वहाँ रीडायरेक्ट करने के लिए दो तरीके हैं। दोनों subprocess.Popen
या subprocess.call
पर लागू होते हैं।
कीवर्ड तर्क shell = True
या executable = /path/to/the/shell
सेट और आदेश आप इसे वहाँ है बस के रूप में निर्दिष्ट करें।
जब से तुम सिर्फ एक फाइल करने के लिए उत्पादन रीडायरेक्ट करते हैं, कीवर्ड तर्क
stdout = an_open_writeable_file_object
जहां सेट output
फाइल करने के लिए वस्तु अंक।
subprocess.Popen
subprocess.call
से अधिक सामान्य है।
Popen
ब्लॉक नहीं है, जबकि यह चल रहा है आप इस प्रक्रिया के साथ बातचीत करने की इजाजत दी है, या अपने अजगर कार्यक्रम में अन्य बातों के साथ जारी है। Popen
पर कॉल Popen
ऑब्जेक्ट देता है।
call
ब्लॉक करता है। हालांकि यह Popen
निर्माता के रूप में सभी एक ही तर्क का समर्थन करता है, तो आप अभी भी प्रक्रिया निर्धारित कर सकते हैं 'उत्पादन, पर्यावरण चर, आदि, अपनी स्क्रिप्ट कार्यक्रम को पूरा करने के लिए इंतजार कर रहा है, और call
एक कोड प्रक्रिया का प्रतिनिधित्व रिटर्न' से बाहर निकलें स्थिति।
returncode = call(*args, **kwargs)
मूल रूप से बुला
returncode = Popen(*args, **kwargs).wait()
call
सिर्फ एक सुविधा समारोह है के समान है। यह CPython में कार्यान्वयन subprocess.py में है:
def call(*popenargs, timeout=None, **kwargs):
"""Run command with arguments. Wait for command to complete or
timeout, then return the returncode attribute.
The arguments are the same as for the Popen constructor. Example:
retcode = call(["ls", "-l"])
"""
with Popen(*popenargs, **kwargs) as p:
try:
return p.wait(timeout=timeout)
except:
p.kill()
p.wait()
raise
आप देख सकते हैं, यह Popen
चारों ओर एक पतली आवरण है।
प्रलेखन का कौन सा हिस्सा आपको भ्रमित करता है? 'कॉल() 'की परिभाषा बहुत स्पष्ट प्रतीत होती है। क्या आप उद्धरण या लिंक प्रदान कर सकते हैं ताकि हम जान सकें कि उत्तर में क्या ध्यान देना है? –