مثال 45 پایتون – برنامه ای به پایتون بنویسید که یک فرمان خارجی را فراخوانی کند.
کد برنامه
1 2 |
from subprocess import call call(["ls", "-l"]) |
توضیح کد
کد پایتون فوق برای اجرای یک دستور خارجی استفاده میشود. در اینجا، subprocess
وارد شده و تابع call
از این ماژول فراخوانی میشود.
در این مثال، دستور ls -l
اجرا میشود که در سیستمعاملهای مبتنی بر یونیکس (مانند لینوکس) برای نمایش محتوای یک دایرکتوری و اطلاعات جزئی دربارهٔ هر فایل و دایرکتوری استفاده میشود.
call
تابعی است که یک لیست از رشتهها به عنوان ورودی میگیرد. در اینجا، لیست ["ls", "-l"]
به عنوان ورودی به تابع داده شده است. این تابع دستور تعیین شده را اجرا میکند و منتظر اتمام اجرای دستور میماند.
به طور کلی، این کد به شما امکان میدهد تا از داخل برنامه پایتون دستورات خارجی را فراخوانی و اجرا کنید و نتایج آنها را دریافت کنید.
کد راه حل دوم
1 2 |
import os print(os.system('ls -l')) |
توضیح راه حل دوم
کد پایتون زیر را برای اجرای دستور خارجی و نمایش نتیجه آن به کاربر استفاده میکند:
1 2 3 |
import os # اجرای دستور 'ls -l' بر روی سیستم عامل os.system('ls -l') |
در این کد:
- ما از ماژول
os
استفاده میکنیم تا امکان اجرای دستورات سیستمی را در پایتون داشته باشیم. - دستور
os.system('ls -l')
اجرای دستور “ls -l” را در ترمینال یا سیستم عامل انجام میدهد. - نتیجه اجرای دستور، به صورت متنی در ترمینال نمایش داده میشود.
این کد به شما امکان اجرای دستورات سیستمی مختلف را درون برنامهی پایتون تان فراهم میکند، اما توجه داشته باشید که این روش برای دسترسی به نتیجه اجرای دستور درون اسکریپت پایتون مناسب نیست. بهتر است از ماژولهای subprocess
یا os.popen
برای این کار استفاده کنید تا بتوانید نتیجه دستور را به عنوان یک متغیر در اسکریپت پردازش کنید.
مقداد علی بخشی هستم. موسیقی دان، برنامه نویس، متخصص هوش مصنوعی، علم داده، متخصص بلاکچین و توسعه دهنده ربات های هوشمند.
دانش آموخته مقطع ارشد و دکتری دانشکده فنی دانشگاه تهران هستم. با سابقه تدریس درس برنامه نویسی در دانشگاه (پردیس بین الملل کیش دانشگاه تهران)