Python subprocess.run- တွင် ကလေးကွန်မန့်တစ်ခုကို ၎င်း၏ကိုယ်ပိုင် ပရောက်စီပတ်ဝန်းကျင် ပေးခြင်း
ကလေးကွန်မန့်တစ်ခုက ပရောက်စီလိုအပ်သောအခါ Python ၏ပတ်ဝန်းကျင်ကို အခြားအလုပ်အတွက် မပြောင်းဘဲ ကူးယူထားသောပတ်ဝန်းကျင်ကို subprocess.run သို့ ပေးပို့ပါ။
Python ပရိုဂရမ်တစ်ခုသည် ကလေးကွန်မန့်တစ်ခုကို ၎င်း၏ကိုယ်ပိုင် ပရောက်စီပတ်ဝန်းကျင် ပေးနိုင်သည်။ အမွေရထားသော တန်ဖိုးများကို ကူးယူပါ၊ မိတ္တူကို ပြောင်းပါ၊ ပြီးလျှင် subprocess.run သို့ ပေးပို့ပါ-
import os
import subprocess
child_env = os.environ.copy()
child_env["https_proxy"] = "http://proxy.example:8080"
subprocess.run(
["curl", "--head", "https://www.example.com/"],
env=child_env,
check=True,
timeout=30,
)ဥပမာက curl ကို ရှိပြီးသားဟု ယူဆသည်။ ၎င်း၏ HTTPS တောင်းဆိုချက်သည် လိုအပ်သော လိုဏ်ခေါင်းကို ပံ့ပိုးသော HTTP ပရောက်စီကို အသုံးပြုနိုင်သည်။ ပရောက်စီ အထောက်အထားများ မသတ်မှတ်ဘဲ ဤအများသူငှာ ဆိုက်စစ်ဆေးမှုအတွက် HTTP ပရောက်စီစာရင်းမှ ကိုယ်စားလှယ်တစ်ဦးသည် ဥပမာ၏ အဆုံးမှတ်ကို အစားထိုးနိုင်သည်။ ကလေးသည် ကူးယူထားသောပတ်ဝန်းကျင်၏ ကျန်အပိုင်းကို ရရှိနေဆဲဖြစ်ပြီး သက်ဆိုင်သော ကျော်ဖြတ်ခြင်းဆက်တင်များ အပါအဝင်ဖြစ်သည်။
env ကို ပေးပို့ခြင်းက ဤခေါ်ဆိုမှုကို ထိုပတ်ဝန်းကျင် ပေးသည်။ မိတ္တူက Python လုပ်ငန်းစဉ်အတွင်း အခြားအလုပ်အတွက် os.environ ကို မပြောင်းလဲစေရန် ရှောင်ရှားသည်။
os.environ သို့ တိုက်ရိုက် သတ်မှတ်ခြင်းသည်လည်း အဓိပ္ပာယ်ရှိသည်- ၎င်းသည် Python ၏ လုပ်ငန်းစဉ်ပတ်ဝန်းကျင်ကို အပ်ဒိတ်လုပ်ပြီး နောက်ပိုင်းတွင် စတင်သော ကလေးများကို သက်ရောက်နိုင်သည်။ ၎င်းသည် Python ကို စတင်ခဲ့သော shell ကို အပ်ဒိတ်မလုပ်ပါ၊ မသက်ဆိုင်သော အက်ပလီကေးရှင်း သို့မဟုတ် လုပ်ဆောင်နေပြီးသား ကလေးကိုလည်း မလုပ်ပါ။
ရည်ရွယ်ချက်မှာ သင့် အပြန်အလှန်တုံ့ပြန်သော shell ရှိ အနာဂတ် ကွန်မန့်များကို ပြောင်းလဲရန်ဖြစ်ပါက ထိုပြောင်းလဲမှုကို shell ထဲတွင် ပြုလုပ်ပါ။ စတင်ထားသော ကိရိယာတစ်ခုတည်းသာ မတူညီသောလမ်းကြောင်း လိုအပ်ပါက ပြထားသည့်အတိုင်း ၎င်း၏ပတ်ဝန်းကျင်ကို subprocess ခေါ်ဆိုမှုဘေးတွင် ထားပါ။