«یادگیری کد نویسی» شعار جدید قرن 21ام است. چیزی که اغلب در این گفته فراموش میشود، دقیقا آن چیزی است که برنامهنویسی را بسیار مفید میکند البته اگر قرار نباشد شما زندگی حرفه ای خود را تغییر بدهید و یک مهندس نرم افزار بشوید. تنها به این خاطر که توسط رایانهها احاطه شدهایم، باعث نمیشود که افراد متوسط مجبور شوند برنامه یخچال هوشمند خود را تغییر بدهند.
اما همیشه مهارتهای برنامه نویسی کمک میکند تا مشکلات غیر معمول مخصوص هر کاربر را حل شود. کارمندان، دانشجویان، مدیران و هرکس دیگری که از کامپیوتر استفاده میکند، یکسری کارهای تکراری خسته کننده دارد. ممکن است نیاز به تغییر نام چند صد فایل داشته باشند، بخواهند نوتیفیکیشنی را با هر بار بروزرسانی وب سایت ارسال کنند و یا بخواهند چند صد سطر از یک فایل اکسل را درون یک فرم تحت وب کپی کنند.
این مشکلات بیش از حد خاص بوده که برایشان راهکارهای نرمافزاری تجاری وجود داشته باشد. اما با مقداری دانش برنامه نویسی، کاربران میتوانند راهکارهای خود را ایجاد کنند. آموختن کد نویسی میتواند کاربران را به کاربرانی قدرتمند تبدیل کند.
به عنوان مثال شما یک فولدر محتوی صدها فایل دارید. هرکدام از این فایلها نامی مثل Apr2015.csv، Mar2015.csv، Feb2015.csv و مانند اینها دارند. به عصر اسکریپت نوشتن بر میگردیم. شما مجبورید این فایلها را بر اساس سال مرتب کنید، اما نرم افزار مرتب کننده از پسش بر نمیآید و بر اساس الفبا هم مرتب کردنش بی فایده است. یک راهکار این است که اسم تمامی فایلها را تغییر بدهید. بطوری که سال در اول نام قرار گیرد و ماهها را با شمارهشان نام گذاری کنید. با این کار مرتب ساز خودکار هم کارش را درست انجام خواهد داد. اما تغییر نام فایلها بسیار آزار دهنده و زمانبر است.
در اینجا برنامهای به زبان پیتون آوردهام که برای نوشتنش 15 دقیقه زمان صرف شده و کاری که نیاز داریم را انجام میدهد.
import os, shutil
monthMapping = {‘Jan’: ‘1’, ‘Feb’: ‘2’, ‘Mar’: ‘3’, ‘Apr’: ‘4’, ‘May’: ‘5’, ‘Jun’: ‘6’, ‘Jul’: ‘7’, ‘Aug’: ‘8’, ‘Sep’: ‘9’, ‘Oct’: ’10’, ‘Nov’: ’11’, ‘Dec’: ’12’}
for filename in os.listdir():
monthPart = filename[:3]
yearPart = filename[3:7]
newFilename = yearPart + ‘_’ + monthMapping[monthPart] + ‘.csv’
print(‘Renaming ‘ + filename + ‘ to ‘ + newFilename)
#shutil.move(filename, newFilename)
به خاطر نحو ساده، پیتون تبدیل به زبان سادهای برای تازه کارها شده است. این زبان دنبالهای از رمزهای 0 و 1 نیست. بدون اینکه هیچ تجربهای از برنامه نویسی داشته باشید میتوانید ادامه بدهید. اجازه میخواهم تا تا خط به خط این کد را بررسی کنم.
نخست ماژول OS و shutil وارد شدهاند که با خود توابع مورد نیاز برای کار با سیستم فایل را دارند. نیازی نیست همه چیز را از ابتدا بنویسیم و تنها ماژولهای آماده را در خط اول وارد میکنیم. بعد متغیری که monthMapping نام دارد، شامل یک لغت نامه است که اختصار شده ماهها را به شمارهشان، مربوط میکند. اگر «Apr» اختصار یک ماه باشد، monthMapping[‘Apr’] به ما شماره ماه را خواهد داد. حلقه for کد را بر روی هر فایل موجود در دایرکتوری جاری اجرا میکند. تابع os.listdir() لیست تمام فایلهای موجود را بر میگرداند.
سه حرف اول نام فایل در متغییری با نام monthPart ذخیره خواهد شد. این تنها خوانایی کد را افزایش میدهد. به طور مشابه، سال موجود در اسم فایل در متغییر yearPart ذخیره میشود.
متغییر new filename از سه قسمت year part، یک آندراسکور(منظور «_»است)، شماره ماه (که از monthMapping[monthPart] برگشت داده شده است) و پسوند .csv ساخته میشود.
اگر خروجی اجرای برنامه را بر روی صفحه نشان دهیم، به کارمان کمک خواهد کرد. خط بعدی به این کار اختصاص داده شده است.
خط آخری تابع move() را از ماژول shutil فراخوانی میکند. به طور معمول این تابع یک فایل را به فولدری دیگر با نامی متفاوت انتقال میدهد. اما اگر از یک فولدر یکسان استفاده کنیم تنها عمل تغییر نام فایلها را انجام میدهد.
# موجود در ابتدای خط، مشخص میکند که این خط توضیخی برای برنامه است و توسط پیتون نادیده گرفته میشود. این کار به شما اجازه میدهد بدون تغییر نامها، اجرای برنامه را ببینید و چک کنید که آیا نتیجه درست است یا نه؟! هر وقت آماده شدید تا تغییر نام را واقعا انجام دهید، میتوانید # را بردارید و برنامه را دوباره اجرا کنید.
زمان رایانه ارزان است/ زمان توسعه دهنده نرمافزار گران
برای این برنامه کمتر از چند ثانیه زمان میبرد تا صدها فایل را تغییر نام بدهد. اما حتی اگر مجبور باشید گیگابایتها داده را پردازش کنید، نیازی به نوشتن کد «باسلیقه» نیست.
اگر به خاطر حرفهای نبودنتان، زمان اجرای کد شما به جای 2 ساعت 10 ساعت شد، نگران نباشید. هیچ مشکلی نیست. چون این زمان از زمانی که بخواهید توسعهدهندهای پیدا کنید، نیازمندیها را برایش شرح دهید، به توافق برسید و در آخر کارش را بررسی کنید، سریعتر است و مطمعنا از انجام دستی کار هم بسیار سریعتر خواهد شد. خلاصه اینکه در مورد کارایی برنامه خود نگران نباشید، زمان پردازش رایانه ارزان است/ زمان توسعه دهنده است که گران است.
منبع: salam-donya