طراح مکانیک دیروز و برنامه نویس امروز با اندک تجربه مدیریت
اسکریپت نویسی برای تنبلها با پایتون(ساخت پیدیاف)
همیشه وقتی میخواستم یه نوشته یا جزوهای رو پیدیاف کنم عزا میگرفتم که حالا باید دونه دونه عکس بگیرم و اگه اون بین یک عکس خراب شه عذابی الهی نازل میشه :)
برای اینکه کارم راحتتر شه شروع کردم به نوشتن یه کد پایتون که یه فولدر عکس بهش داده بشه و خروجی یه پیدیاف از اون عکسا رو برگردونه.
از پایتون ۳ به عنوان زبان برنامهنویسی و کتابخونههای زیر استفاده کردم:
- کتابخونه os (برای کار با آدرس فایلها).
- کتابخونه img2pdf (برای ایجاد پیدیاف از عکس).
- کتابخونه argparse (برای گرفتن ورودی از طریق دستورات کامندلاین).
مرحله صفر، نقشه راه
نقشه ذهنی من برای این کد به این شکل بود:
- آدرس یه فولدر پر از عکس به کد داده شه.
- عکسها به ترتیب اسم مرتب بشه ( چون به ترتیب معمولا گرفته میشه یا خودمون این اسم گذاری رو براشون انجام بدیم).
- پیدیاف ساخته بشه و توی آدرسی که میخوام ذخیره بشه.
مرحله اول، مشخص کردن ورودیها
من این مرحله همیشه ارزش زیادی قائلم چون فکر میکنم ورودی مناسب باعث میشه خیلی کار راحت بشه.
من از argparse استفاده کردم تا بتونم از محیط ترمینال استفاده کنم برای ران کردن کد.
من سه ورودی رو مشخص کردم، آدرس فولدر عکسها، آدرس خروجی و اسم فایل خروجی.
نمونهای از ورودی مورد پذیرش به شکل زیر است:
برای تمام ورودیها مقدار پیش فرض هم در نظر گرفتم تا اگه از سمت کاربر داده نشد کد با مشکل روبهرو نشه و کارش رو انجام بده.
'.' که برای مقدار پیشفرض ورودی آدرسها تعیین شده به معنی محل اجرای کد هست.
مرحله دوم، آمادهسازی ورودیها برای ساخت پیدیاف
حالا که مرحله اول رو گذروندیم باید ورودیهارو اماده کنیم. عکسها براساس اسم مرتب بشن و اگر تغییری روی اسم خروجی لازمه انجام بشه.
اسم عکسها بعد از گرفته شدن از آدرس ورودی توی یه لیست مرتب میشن، اسم خروجی هم اگر بدون پسوند باشه اصلاح میشه و آدرس نهایی فایل خروجی هم با توجه به ورودی ها درست میشه.
مرحله آخر، ساخت پیدیاف
خب حالا که اسم عکسها مرتب شده و آدرس خروجی هم تولید شده وقت درست کردن پیدیاف مورد نظرمونه.
با استفاده از img2pdf پیدیاف رو از روی لیست اسم فایلها اگر اون فایلها jpg باشن میسازیم.
کد کامل این اسکریپت روی گیتهاب:
کد خیلی ساده و حداقلی نوشته شده، خوشحال میشم اگه روی گیت هاب نغییراتی که دوست دارید روی کد انجام بدید
مطلبی دیگر از این انتشارات
آزمایش حدس گلدباخ با پایتون 1
مطلبی دیگر از این انتشارات
پنج اصل اولیه طراحی شی گرا SOLID
مطلبی دیگر از این انتشارات
کدهای گیت هاب با شما حرف میزنند یا بهترین معلم من گیت هاب