Table of Contents
مقدمهٔ خودکارسازی
خودکارسازی (Automation) یعنی سپردن انجام یک کار تکراری به کامپیوتر، بهطوریکه:
- کامپیوتر کار را بهجای شما انجام دهد
- کار با خطای کمتر، سرعت بیشتر و طبق یک الگوی ثابت انجام شود
- شما فقط کار را «طراحی» کنید، نه اینکه هر بار خودتان آن را انجام دهید
در این فصلها یاد میگیرید چطور با پایتون کارهای تکراری و خستهکننده را به برنامه بسپارید.
تعریف سادهٔ خودکارسازی
اگر کاری این ویژگیها را داشته باشد، معمولا میتوان آن را خودکار کرد:
- تکراری است
مثلا هر روز یا هر هفته، یا بارها در طول روز انجام میشود. - الگوی مشخص دارد
یعنی قدمهای آن تقریبا همیشه یکسان است: - فایل را باز کن
- چند خط را بخوان
- نتیجه را جایی ذخیره کن
- به تصمیمگیری پیچیدهٔ انسانی نیاز ندارد
کامپیوتر با یک سری قوانین ساده میتواند تصمیم بگیرد چه کار کند.
خودکارسازی یعنی:
- این مراحل را یکبار در قالب یک اسکریپت پایتون مینویسید
- بعد از آن، فقط اسکریپت را اجرا میکنید تا کار انجام شود
چرا خودکارسازی مهم است؟
چند دلیل اصلی:
۱. صرفهجویی در زمان
فرض کنید هر روز ۳۰ دقیقه صرف کارهای تکراری میکنید:
- تغییر نام چند فایل
- کپی یک سری داده از یک فایل به فایل دیگر
- مرتب کردن یک جدول اکسل
اگر این کار را خودکار کنید و به ۱ دقیقه برسانید:
- در یک ماه حدود ۱۴ ساعت صرفهجویی میکنید
- در یک سال دهها ساعت وقت آزادتر دارید
۲. کاهش خطای انسانی
انسان خسته میشود، حواسش پرت میشود و اشتباه میکند.
کامپیوتر:
- اگر برنامه درست نوشته شده باشد
- هر بار دقیقا همان کار را انجام میدهد
- نتیجهها یکسان و قابلاعتمادتر هستند
این در کارهایی مثل:
- محاسبهها
- جابهجایی و ویرایش دادهها
- تولید گزارشها
خیلی مهم است.
۳. یکنواختی و استاندارد شدن کار
با خودکارسازی میتوانید مطمئن باشید:
- نام همهٔ فایلها طبق یک الگو است
- گزارشها همیشه با یک فرمت تولید میشوند
- فایلهای پشتیبان همیشه در یک ساختار مشخص ذخیره میشوند
این موضوع بعدا:
- جستجو
- نگهداری
- و توسعهٔ کارها را سادهتر میکند.
۴. آزاد شدن ذهن برای کارهای مهمتر
به جای وقت گذاشتن روی:
- کپی و پیست
- پر کردن دستی فایلها
- کارهای اداری تکراری
میتوانید:
- روی طراحی، یادگیری، تحلیل و خلاقیت تمرکز کنید
- مسیر شغلی خودتان را سریعتر جلو ببرید
خودکارسازی دستی در مقابل خودکارسازی با برنامهنویسی
دو نوع «خودکار کردن» وجود دارد:
۱. خودکارسازی دستی (بدون کدنویسی)
مثلا:
- ساختن ماکرو در Excel
- استفاده از ابزارهای آمادهٔ «اتوماسیون» در سیستمعامل
- تنظیم قوانین در ایمیل (فیلتر کردن، برچسب زدن و …)
این روشها:
- برای شروع خوب هستند
- ولی محدودند و بهسختی قابلگسترشاند
۲. خودکارسازی با برنامهنویسی (مثل پایتون)
در این دوره تمرکز ما روی این نوع است.
با پایتون میتوانید:
- خودتان منطق دقیق کار را تعریف کنید
- ابزارهایی بسازید که دقیقا مطابق نیاز شما باشند
- برنامه را هر وقت خواستید تغییر دهید و توسعه دهید
مثلا:
- اسکریپتی که هر روز فایلهای جدید را پیدا کند و جابهجا کند
- برنامهای که از روی یک فایل اکسل، گزارش PDF بسازد
- برنامهای که بهطور خودکار ایمیلهای ساده بفرستد
ویژگیهای مناسب برای خودکارسازی با پایتون
همهچیز را نباید خودکار کرد.
کارهایی برای خودکارسازی با پایتون مناسباند که:
- ورودی و خروجی مشخصی دارند
مثلا: - ورودی: یک پوشهٔ حاوی عکسها
- خروجی: یک پوشهٔ جدید که عکسها با نامهای مرتب ذخیره شدهاند
- مراحل میتوانند به زبان ساده توصیف شوند
مثلا: - «همهٔ فایلهای PDF را پیدا کن»
- «اگر نام فایل شامل
گزارشبود، آن را به پوشهٔ report منتقل کن» - با فایلها، متن، وب یا دادهها سروکار دارند
بخش زیادی از خودکارسازی در پایتون دربارهٔ: - کار با فایلها و پوشهها
- پردازش متنها و دادهها
- ارتباط با سرویسهای وب
است (جزئیات اینها در زیرفصلهای بعدی همین فصل میآید). - نیاز به تکرار منظم دارند
مثلا: - هر روز، هر هفته یا هر ماه
- یا هر بار که دادهٔ جدید میرسد
مثالهای ساده از ایدههای خودکارسازی (بدون پیادهسازی کامل)
در این زیرفصل نمیخواهیم کد کامل بنویسیم، فقط ایدهها را نشان میدهیم تا حس بگیرید خودکارسازی یعنی چه. جزئیات پیادهسازی در زیرفصلهای بعدی همین فصل میآید.
مثال ۱: مرتبسازی خودکار فایلها در یک پوشهٔ دانلود
ایده:
- پوشهٔ دانلود را بررسی کن
- اگر فایل تصویر است، به پوشهٔ
Picturesمنتقل کن - اگر فایل PDF است، به پوشهٔ
Documentsمنتقل کن
نمایی خیلی ساده از منطق کار به شکل شبهکد:
اگر پسوند فایل .jpg یا .png بود -> انتقال به پوشهٔ تصاویر
اگر پسوند فایل .pdf بود -> انتقال به پوشهٔ اسناد
در غیر این صورت -> در همانجا بمانددر زیرفصل «کار با فایلها و پوشهها» یاد میگیرید چطور چنین ایدهای را در پایتون اجرا کنید.
مثال ۲: تولید گزارش ساده از یک فایل متنی یا CSV
فرض کنید هر روز یک فایل داده دریافت میکنید. میتوانید اسکریپتی بسازید که:
- فایل را بخواند
- مثلا تعداد ردیفها را حساب کند
- میانگین یک ستون عددی را بهدست بیاورد
- نتیجه را در یک فایل متنی ساده ذخیره کند
منطق کلی:
باز کردن فایل داده
خواندن همهٔ ردیفها
محاسبهٔ آمار موردنظر (مثلا میانگین)
نوشتن نتیجه در یک گزارش متنیدر زیرفصل «خودکارسازی پردازش متن» نمونههای واقعیتری خواهید دید.
مثال ۳: تمیز کردن متنها
فرض کنید:
- یک فایل متنی دارید که شامل تعداد زیادی خط است
- میخواهید فاصلههای اضافی، کاراکترهای خاص یا حروف نامناسب را حذف کنید
میتوانید اسکریپتی بنویسید که:
- متن را بخواند
- طبق قوانین شما آن را تمیز کند
- خروجی تمیزشده را در فایل جدید ذخیره کند
مزایا و معایب خودکارسازی
خودکارسازی همیشه «خوب» نیست؛ باید با دقت از آن استفاده کرد.
مزایا
- سرعت بالا
- کاهش خطا
- قابلتکرار بودن نتیجه
- امکان اجرای خودکار در زمانهای مشخص
معایب / چالشها
- نیاز به زمان اولیه برای نوشتن اسکریپت
گاهی نوشتن برنامه از انجام دستی یکبارهٔ کار طولانیتر میشود.
پس برای کارهایی که فقط یکبار انجام میشوند، شاید خودکارسازی لازم نباشد. - نیاز به نگهداری (Maintenance)
اگر: - ساختار فایلها عوض شود
- پوشهها تغییر کنند
- یا قوانین شما عوض شود
اسکریپت هم باید بهروزرسانی شود. - خطر تکرار اشتباه بهصورت خودکار
اگر منطق برنامه اشتباه باشد،
اشتباه در مقیاس بزرگ و خیلی سریع انجام میشود.
برای همین: - باید اسکریپتها را اول روی دادههای نمونه امتحان کنید
- و مطمئن شوید درست کار میکنند
نقش پایتون در خودکارسازی
چرا برای خودکارسازی در این دوره روی پایتون تمرکز میکنیم؟
- سینتکس ساده و خوانا
حتی برای تازهکارها قابلفهم است. - کتابخانههای فراوان
برای: - کار با فایل و پوشه
- پردازش متن
- کار با وب
- کار با زمان و تاریخ
کتابخانههای آماده وجود دارد. - قابلاستفاده در سیستمعاملهای مختلف
ویندوز، macOS، لینوکس - مناسب برای اسکریپتهای کوچک و پروژههای بزرگ
میتوانید با چند خط کد کار ساده را خودکار کنید،
یا بعدا ابزار بزرگتری از روی همان ایده بسازید.
در زیرفصلهای بعدی همین فصل (۱۴) میبینید چطور:
- یک کار ساده را شناسایی میکنیم
- آن را به چند قدم کوچک تبدیل میکنیم
- سپس با پایتون آن را خودکار میکنیم
در عمل از کجا شروع کنیم؟
برای اینکه بتوانید کار خودتان را خودکار کنید، این چهار سؤال را از خودتان بپرسید:
- کدام کار من تکراری است و از انجامش خسته میشوم؟
- آیا میتوانم این کار را قدمبهقدم روی کاغذ توضیح دهم؟
- آیا دادههای این کار (فایلها، متنها، پوشهها…) در دسترس برنامه هستند؟
- آیا این کار آنقدر تکرار میشود که ارزش نوشتن یک اسکریپت را داشته باشد؟
اگر پاسخ بیشتر این سؤالها «بله» است،
احتمالا این کار یک نامزد خوب برای خودکارسازی با پایتون است.
در بخشهای بعدی فصل ۱۴،
روی نمونههای واقعیتری کار میکنیم و قدمبهقدم آنها را به اسکریپتهای پایتون تبدیل خواهیم کرد.