$lang['tuto'] = "سبق"; ?> ازگر میں بیرونی کمانڈز کو کیسے

ازگر میں بیرونی کمانڈز کو کیسے چلایا جائے۔

ازگر میں بیرونی کمانڈز کو کیسے چلایا جائے۔
ازگر میں بیرونی کمانڈز کو کیسے چلایا جائے۔

Python سے سسٹم کمانڈز چلانا

Python بیرونی پروگراموں اور سسٹم کمانڈز کو براہ راست آپ کے اسکرپٹس سے چلانے کے لیے طاقتور صلاحیتیں فراہم کرتا ہے۔ یہ خصوصیت آپ کو اپنے آپریٹنگ سسٹم میں دستیاب ٹولز کی وسیع صفوں سے فائدہ اٹھاتے ہوئے Python کی سادگی سے فائدہ اٹھانے کی اجازت دیتی ہے۔

چاہے آپ دہرائے جانے والے کاموں کو خودکار کر رہے ہوں یا پیچیدہ ورک فلو کو مربوط کر رہے ہوں، یہ سمجھنا کہ Python میں سسٹم کمانڈز کو کس طرح کال کرنا ہے آپ کی پیداواری صلاحیت کو نمایاں طور پر بڑھا سکتا ہے۔ اس گائیڈ میں، ہم اسے مؤثر طریقے سے حاصل کرنے کے لیے مختلف طریقے تلاش کریں گے۔

کمانڈ تفصیل
subprocess.run ذیلی شیل میں کمانڈ پر عمل درآمد کرتا ہے۔ آؤٹ پٹ اور غلطیوں کو پکڑ سکتا ہے۔
subprocess.run([...], capture_output=True) پھانسی کی کمانڈ کی معیاری آؤٹ پٹ اور معیاری غلطی کو پکڑتا ہے۔
subprocess.run([...], shell=True) کمانڈ کو شیل کے ذریعے چلاتا ہے، شیل کی خصوصیات جیسے وائلڈ کارڈز کی اجازت دیتا ہے۔
subprocess.Popen ایک نئے عمل میں ایک کمانڈ کو چلاتا ہے، اس پر عمل درآمد پر مزید کنٹرول فراہم کرتا ہے۔
process.stdout.readline() عمل کے معیاری آؤٹ پٹ سے آؤٹ پٹ کی ایک لائن پڑھتا ہے۔
os.system ذیلی شیل میں ایک کمانڈ کو چلاتا ہے، عام طور پر سادہ کمانڈ پر عمل درآمد کے لیے استعمال ہوتا ہے۔
subprocess.check_output ایک کمانڈ چلاتا ہے اور اس کا آؤٹ پٹ واپس کرتا ہے۔ اگر کمانڈ ناکام ہو جائے تو ایک استثناء پیدا کرتا ہے۔
os.environ.copy() موجودہ ماحولیاتی متغیرات کی ایک کاپی بناتا ہے، ترمیم کی اجازت دیتا ہے۔
env parameter in subprocess.run نئے عمل کے لیے ماحولیاتی متغیرات کی وضاحت کرتا ہے۔

ازگر میں اسکرپٹ پر عمل درآمد کو سمجھنا

فراہم کردہ اسکرپٹس Python کا استعمال کرتے ہوئے بیرونی کمانڈز کو انجام دینے کے مختلف طریقے دکھاتی ہیں۔ دی subprocess.run کمانڈ ورسٹائل ہے، جو آپ کو اپنے ازگر اسکرپٹ سے براہ راست شیل کمانڈ چلانے کی اجازت دیتا ہے۔ مثال کے طور پر، subprocess.run(['echo', 'Hello, World!']) کنسول پر ایک پیغام پرنٹ کرتا ہے، جبکہ subprocess.run(['ls', '-l'], capture_output=True, text=True) کی آؤٹ پٹ کو پکڑتا ہے۔ ls -l کمانڈ، ایک تفصیلی ڈائریکٹری لسٹنگ کی نمائش. استعمال کرنا shell=True کے ساتھ subprocess.run شیل خصوصیات کے استعمال کی اجازت دیتا ہے، جیسے وائلڈ کارڈ کی توسیع، اسے مزید پیچیدہ کمانڈز کے لیے آسان بناتی ہے۔

دی subprocess.Popen کمانڈ غیر مطابقت پذیر کمانڈ کو چلانے اور عمل کے ان پٹ اور آؤٹ پٹ اسٹریمز کے ساتھ تعامل کی اجازت دے کر کمانڈ پر عمل درآمد پر مزید کنٹرول فراہم کرتا ہے۔ مثال کے طور پر، اسکرپٹ مثال کے ساتھ subprocess.Popen(['ping', 'localhost'], stdout=subprocess.PIPE) مقامی مشین کو مسلسل پنگ کرتا ہے اور آؤٹ پٹ کی ہر لائن کو پڑھتا ہے۔ مزید برآں، os.system سادہ کمانڈ پر عمل درآمد کے لیے استعمال کیا جاتا ہے لیکن اس میں لچک کا فقدان ہے۔ subprocess. ماحولیاتی متغیرات میں ترمیم کی جا سکتی ہے اور اسے استعمال کرتے ہوئے ذیلی عمل میں منتقل کیا جا سکتا ہے۔ os.environ.copy() اور env پیرامیٹر میں subprocess.run، ماحول کی بنیاد پر متحرک کمانڈ پر عمل درآمد کی اجازت دیتا ہے۔

ازگر میں بیرونی کمانڈز کو چلانا

ازگر کا سب پروسیس ماڈیول استعمال کرنا

import subprocess
# Example 1: Running a simple shell command
subprocess.run(['echo', 'Hello, World!'])
# Example 2: Capturing the output of a command
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
print(result.stdout)
# Example 3: Running a command with shell=True
subprocess.run('echo Hello from the shell', shell=True)
# Example 4: Checking the return code
result = subprocess.run(['ls', 'nonexistentfile'], capture_output=True)
if result.returncode != 0:
    print('Command failed')
# Example 5: Using subprocess.Popen for more control
process = subprocess.Popen(['ping', 'localhost'], stdout=subprocess.PIPE)
while True:
    output = process.stdout.readline()
    if output == b'' and process.poll() is not None:
        break
    if output:
        print(output.strip().decode())

ازگر کے ساتھ سسٹم ٹاسکس کو خودکار کرنا

os.system اور subprocess ماڈیولز کا استعمال

import os
import subprocess
# Example 1: Using os.system to run a command
os.system('echo This is a test')
# Example 2: Running a command and capturing output with subprocess
result = subprocess.run(['date'], capture_output=True, text=True)
print('Current date and time:', result.stdout)
# Example 3: Executing multiple commands
commands = ['echo First command', 'echo Second command']
for cmd in commands:
    os.system(cmd)
# Example 4: Running a command with environment variables
env = os.environ.copy()
env['MY_VAR'] = 'Hello'
subprocess.run('echo $MY_VAR', shell=True, env=env)
# Example 5: Handling command errors
try:
    subprocess.check_output(['false_command'], stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as e:
    print('An error occurred:', e.output.decode())

سسٹم کمانڈ پر عمل درآمد کے لیے جدید تکنیک

Python میں سسٹم کمانڈز پر عمل درآمد کا ایک اور پہلو استعمال کرنا شامل ہے۔ shlex شیل کمانڈ پارسنگ کو ہینڈل کرنے کے لیے ماڈیول۔ یہ ماڈیول شیل کمانڈز کو فہرست کی شکل میں تقسیم کرنے کا ایک طریقہ فراہم کرتا ہے، جسے پھر پاس کیا جا سکتا ہے۔ subprocess افعال. یہ اس بات کو یقینی بناتا ہے کہ خالی جگہوں کے ساتھ دلائل کو صحیح طریقے سے ہینڈل کیا گیا ہے۔ اس کے علاوہ، آپ استعمال کر سکتے ہیں subprocess.PIPE معیاری ان پٹ، آؤٹ پٹ، اور ایرر اسٹریمز کو پیرنٹ پروسیس کی طرف لے جانے کے لیے، زیادہ پیچیدہ انٹر پروسیس کمیونیکیشن کی اجازت دیتا ہے۔

مثال کے طور پر، کمانڈ کو زنجیر بنانا اور ان کے آؤٹ پٹ کو ترتیب وار پروسیسنگ ایک کمانڈ کے آؤٹ پٹ کو دوسری کمانڈ میں پائپ کرکے حاصل کیا جا سکتا ہے۔ subprocess.Popen. یہ آپ کو طاقتور کمانڈ ترتیب بنانے کی اجازت دیتا ہے جیسا کہ آپ شیل اسکرپٹ میں کرتے ہیں۔ آپ بھی استعمال کر سکتے ہیں۔ threading آپ کے اسکرپٹ کی کارکردگی کو بڑھاتے ہوئے، ایک ساتھ متعدد ذیلی عمل کمانڈز کو چلانے کے لیے، خاص طور پر جب I/O- پابند کاموں سے نمٹنے کے لیے۔

Python میں سسٹم کمانڈز کو چلانے کے بارے میں اکثر پوچھے جانے والے سوالات

  1. میں شیل کمانڈ کیسے چلا سکتا ہوں اور اس کا آؤٹ پٹ ازگر میں حاصل کر سکتا ہوں؟
  2. استعمال کریں۔ subprocess.run کے ساتھ capture_output=True کمانڈ کے آؤٹ پٹ پر قبضہ کرنے کے لیے۔
  3. ان کے درمیان فرق کیا ھے subprocess.run اور subprocess.Popen?
  4. subprocess.run ایک آسان انٹرفیس ہے جو کمانڈ کے مکمل ہونے کا انتظار کرتا ہے۔ subprocess.Popen کمانڈ پر عمل درآمد پر زیادہ کنٹرول دیتا ہے، غیر مطابقت پذیر آپریشن کی اجازت دیتا ہے۔
  5. سسٹم کمانڈ چلاتے وقت میں غلطیوں کو کیسے ہینڈل کروں؟
  6. استعمال کریں۔ try اور except کے ساتھ بلاکس subprocess.CalledProcessError غلطیوں کو پکڑنے اور سنبھالنے کے لیے۔
  7. کیا میں ماحولیاتی متغیرات کو کمانڈ میں منتقل کر سکتا ہوں؟
  8. جی ہاں، استعمال کریں env پیرامیٹر میں subprocess.run یا subprocess.Popen ماحولیاتی متغیرات کو منتقل کرنے کے لیے۔
  9. میں ترتیب میں متعدد کمانڈ کیسے چلا سکتا ہوں؟
  10. استعمال کریں۔ subprocess.run یا subprocess.Popen کے ساتھ پائپوں کا استعمال کرتے ہوئے ایک لوپ یا چین کمانڈز میں subprocess.Popen.
  11. میں ایسی کمانڈ کو کیسے چلا سکتا ہوں جس میں صارف کے ان پٹ کی ضرورت ہو؟
  12. استعمال کریں۔ subprocess.Popen کے ساتھ stdin=subprocess.PIPE اور استعمال کرتے ہوئے عمل کے ساتھ بات چیت کریں۔ process.communicate.
  13. کا کیا فائدہ ہے shlex کمانڈ پر عمل درآمد میں؟
  14. shlex شیل کمانڈز کو صحیح طریقے سے پارس کرنے میں مدد کرتا ہے، اس بات کو یقینی بناتا ہے کہ خالی جگہوں کے ساتھ دلائل کو مناسب طریقے سے ہینڈل کیا جائے۔
  15. میں پس منظر میں کمانڈ کیسے چلا سکتا ہوں؟
  16. استعمال کریں۔ subprocess.Popen عمل مکمل ہونے یا استعمال کرنے کا انتظار کیے بغیر threading پس منظر پر عملدرآمد کا انتظام کرنے کے لیے۔

سسٹم کمانڈ پر عمل درآمد کے لیے جدید تکنیک

Python میں سسٹم کمانڈز پر عمل درآمد کا ایک اور پہلو استعمال کرنا شامل ہے۔ shlex شیل کمانڈ پارسنگ کو ہینڈل کرنے کے لیے ماڈیول۔ یہ ماڈیول شیل کمانڈز کو فہرست کی شکل میں تقسیم کرنے کا ایک طریقہ فراہم کرتا ہے، جسے پھر پاس کیا جا سکتا ہے۔ subprocess افعال. یہ اس بات کو یقینی بناتا ہے کہ خالی جگہوں کے ساتھ دلائل کو صحیح طریقے سے ہینڈل کیا گیا ہے۔ اس کے علاوہ، آپ استعمال کر سکتے ہیں subprocess.PIPE معیاری ان پٹ، آؤٹ پٹ، اور ایرر اسٹریمز کو پیرنٹ پراسیس کی طرف لے جانے کے لیے، زیادہ پیچیدہ انٹر پروسیس کمیونیکیشن کی اجازت دیتا ہے۔

مثال کے طور پر، کمانڈ کو زنجیر بنانا اور ان کے آؤٹ پٹ کو ترتیب وار پروسیسنگ ایک کمانڈ کے آؤٹ پٹ کو دوسری کمانڈ میں پائپ کرکے حاصل کیا جا سکتا ہے۔ subprocess.Popen. یہ آپ کو طاقتور کمانڈ ترتیب بنانے کی اجازت دیتا ہے جیسا کہ آپ شیل اسکرپٹ میں کرتے ہیں۔ آپ بھی استعمال کر سکتے ہیں۔ threading آپ کے اسکرپٹ کی کارکردگی کو بڑھاتے ہوئے، ایک ساتھ متعدد ذیلی عمل کمانڈز کو چلانے کے لیے، خاص طور پر جب I/O- پابند کاموں سے نمٹنے کے لیے۔

ازگر میں کمانڈز پر عمل درآمد کے بارے میں حتمی خیالات

Python میں بیرونی کمانڈز کو چلانا ایک ورسٹائل اور طاقتور صلاحیت ہے جو آپ کے اسکرپٹنگ اور آٹومیشن کے کاموں کو نمایاں طور پر بڑھا سکتی ہے۔ کا استعمال کرتے ہوئے subprocess ماڈیول، آپ شیل کمانڈز چلا سکتے ہیں، ان کے آؤٹ پٹ کو پکڑ سکتے ہیں، اور غلطیوں کو مؤثر طریقے سے ہینڈل کر سکتے ہیں۔ دی os.system فنکشن بنیادی کمانڈ پر عمل درآمد کے لیے ایک آسان متبادل فراہم کرتا ہے۔ مزید برآں، کو شامل کرنا shlex ماڈیول پیچیدہ شیل کمانڈز کی مناسب تجزیہ کو یقینی بناتا ہے۔ ان تکنیکوں کو سمجھنا آپ کو اپنے آپریٹنگ سسٹم کے کمانڈ لائن ٹولز کی پوری صلاحیت کو بروئے کار لاتے ہوئے Python کی طاقتوں سے فائدہ اٹھانے کے قابل بناتا ہے۔