پایتون :: شمشاد

داده جمع می‌کنم، بلکه یاد بگیرم زندگی‌ رو !!

۴ مطلب با کلمه‌ی کلیدی «پایتون» ثبت شده است

مثالی ساده و عملی برای عملکرد کاهش نویز فعال

Active Noise Cancellation

چند روز پیش امیر یه هدفون مجهز به سیستم کاهش نویز آورده بود، قبلا همچین ادعاهایی رو تو هدفون‌ها دیده بودم ولی ویژگی محسوسی نداشتند، اما این یکی رو به محض این که رو گوشام گذاشتم، سکوت قابل ملاحظه‌ای رو حس کردم، بعد پیرموان همین موضوع و این که چطوری این اتفاق میفته باهم بحث کردیم، در واقع، مطالب این دست همیشه تو اخبار و سایت‌ها هست ولی تا وقتی که لمس‌شون نکردیم کنجکاو‌شون نمی شیم و راحت از کنارشون رد می‌شیم. تو بحثی که با هم می‌کردیم نمی‌دونستم، آیا می‌تونم از واژه سیگنال صوتی منفی (و یا معکوس) استفاده کنم یا نه. تصمیم گرفتم این موضوع رو بصورت ساده‌ای تست کنم. از فرصت تعطیلی پیش اومده استفاده کردم، با پایتون یه سیگنال صوتی استریو ۶۰۰ هرتز ساختم که، کانال‌هاش با هم اختلاف فاز ۱۸۰ درجه داشتند. الان در ادامه یه مقدمه کوچک از این تکنولوژی می‌گم و همچنین به نحوه‌ی ساخت سیگنال صوتی تو پایتون اشاره می‌کنم و بعد نتیجه کار رو می‌گم.

ادامه مطلب...
۲۳ بهمن ۹۹ ، ۲۲:۵۲ ۱ نظر موافقین ۰ مخالفین ۰
Hasan

فشرده‌سازی دایرکتوری‌ها به صورت جداگانه با پایتون

مدتی قبل مطلب "دانلود ترجمه مانگای حمله به تایتان" رو اینجا منتشر کردم، برای آپلود قسمت‌های این مانگا حدود ۱۰۰ دایرکتوری تصویر داشتم که باید زیپ‌شون می‌کردم. برا این که براحتی این ۱۰۰ دایرکتوری رو زیپ کنم یک اسکریپت با پایتون نوشتم. در ادامه مطلب توضیح مختصری در مورد فشرده‌سازی با پایتون می‌دم و سپس اسکریپتم رو میارم. 

فشرده سازی فایل با پایتون:

عمل فشرده‌سازی در پایتون به صورت پیشفرض با ماژول zipfile انجام می‌شود پس در قدم اول ماژول zipfile رو وارد کرده و سپس شی zipfile را می‌سازیم و به‌صورت زیر عمل می‌کنیم:

import zipfile

test_zip = zipfile.ZipFile('test.zip', 'w')
test_zip.write('filename', compress_type=zipfile.ZIP_DEFLATED)

test_zip.close()

در متد write اولین پارامتر مربوط به اسم فایلی (و یا پچی) هست که می‌خواهیم فشرده‌اش کنیم. پارامتر دوم موربوط به متد فشرده‌سازی هست، در پایتون ۲ فقط دو نوع متد فشرده‌سازی داریم که عبارتند از: ZIP_STORED و ZIP_DEFLATED اما بعد از پایتون ۳/۳ متدهای ZIP_BZIP2 و ZIP_LZMA نیز در دسترس هست. 

ادامه مطلب...
۲۴ اسفند ۹۶ ، ۱۰:۱۵ ۰ نظر موافقین ۱ مخالفین ۰
Hasan

استفاده از چندین نسخه پایتون به‌صورت همزمان در ویندوز

گاها نیاز می‌شه از چند نسخه مختلف پایتون در یک سیستم استفاده کرد، مخصوصا وقتی که از پایتون 2 و پایتون  3 به صورت همزمان استفاد می‌شود. انجام این‌کار تو لینوکس نسبتا ساده هست ولی در ویندوز به ابزاری به اسم Python Launcher نیاز هست. این برنامه توسط Vinay Sajip نوشته شده است. و از نسخه 3.3 به بعد به همراه پایتون از طریق نصاب نصب می‌شود، البته گاها در بعضی نسخه‌ها این ابزار به صورت آپشن بوده و باید هنگام نصب توسط کاربر انتخاب شود.  python Luncher  شامل دو فایل py.exe (که برای اجرای python.exe به کار می‌رود.) و pyw.exe (که برای اجرای pythonw.exe به کار می‌رود.) هست. چنان که این ابزار به همراه پایتون نصب شود، محل قرارگیری این دو فایل در دایرکتوری اصلی Windowsخواهد بود.

Python Launcher

 همچنین می‌توان این برنامه را با دانلود از سایت نویسنده برنامه نصب کرد.  صفحه دانلود Python Launcher از سایت اصلی:

https://bitbucket.org/vinay.sajip/pylauncher/downloads/

خود من در دانلود این برنامه مشکل داشتم برا همین این فایل‌ها رو آپلود کردم تا مورد استفاده دوستان قرار بگیرد. لینک دانلود نصاب Python Launcher نسخه 64 بیتی:

http://uploadboy.me/mz7kg0wjpeev/Python_launcher-1.0.1.6.amd64.msi.html

لینک دانلود نسخه 32 بیتی:

http://uploadboy.me/f25t2nzvqst2/Python_launcher-1.0.1.6.msi.html

باید بعد از نصب مطمئن شوید که دایرکتوری برنامه به متغیر path سیستم اضافه شده است، در غیر این صورت به صورت دستی این کار را بکنید.

استفاده از  Python Launcher:

قالب کلی به این صورت است که ابتدا فرمان "py" سپس نسخه پایتون به صورت "y.x-" وارد می‌شود. بطور مثال:

py -2.7

چنان که قصد استفاده از آخرین نسخه از پایتون 3 و یا 2 نصب شده را دارید نیاز به زدن قسمت اعشار نسخه نیست:

py -3

 با زدن آرگومان "32-" و یا "64-" می‌توانید نسخه 32 بیتی یا 64 بیتی پایتون را انتخاب کنید:

py -2 -32 MyScript.py

تنظیم Python Launcher:

به استناد داکیومنت‌های پایتون در بعضی نسخه‌ها یک فایل کانفیگ به اسم py.ini نیز هست که می‌توان از طریق آن تنظیمات جالب و کاربردی از طریق این برنامه انجام داد. آدرس فایل کانفیگ در ویندوزهای بالاتر از ویستا:

%USERPROFILE%\AppData\Local

و در ویندوز xp:

%USERPROFILE%\Local Settings\Application Data

و چنان که از طریق نصاب خود Python Launcher برنامه را نصب کرده باشید، فایل کانفیگ در محل نصب و در کنار فایل py.exe خواهد بود. برای من فایل کانفیگ به همراه پایتون نصب نشده بود و برای استفاده از امکان تنظیم، Python Launcher به صورت مجزا نصب کردم. اولین تنظیم مربوط به انتخاب نسخه پیش‌فرض لانچر هست: 

[defaults]
; Uncomment out the following line to have Python 3 be the default.
python=3.6

تنظیمات بعدی به صورت انتخابی بوده و می توانید هر دستور دلخواه با هر آرگومان دلخواه را برای لانچر تعریف کنید، بعنوان مثال من هنگام استفاده از virtual environment برای این که از نسخه مورد نظرم استفاده کنم، تنظینات زیر را در فایل کانفیگ اعمال کرده‌ام:

[commands]

venv2= "C:\Python27\Scripts\virtualenv.exe" 
venv3= "C:\Users\UserName\AppData\Local\Programs\Python\Python36\Scripts\virtualenv.exe"

حال وقتی که قصد استفاده از virtual environment با پایتون 3.6 را دارم، دستور زیر را می‌زنم:

py -venv3

با این امکان می‌توان بسیاری از دستورات طولانی و پرکاربرد را کوتاه کرد.

منابع

https://www.python.org/dev/peps/pep-0397/

https://docs.python.org/3/using/windows.html

https://bitbucket.org/vinay.sajip/pylauncher

۰۲ آذر ۹۶ ، ۱۵:۳۲ ۰ نظر موافقین ۰ مخالفین ۰
Hasan

نصب OpenCV در ویندوز برای پایتون

چند روز پیش یکی از دوستانم که اخیراً سایتی رو راه اندازی کرده بهم تلفن کرد گفت: “فتوشاپ داری؟ حدود ۳۰۰ تا عکس دارم که می خوام برا گالری سایت اندازه هاشونو تغییر بدم همچنین اسم سایت رو روشون واترمارک کنم، بلدی چطور میشه کاری کرد که فتوشاپ به صورت اتوماتیک این تغییرات رو همه ی عکس ها اعمال کنه؟” ، بهش گفتم: “بلد نیستم ولی CS3 رو دارم، برات میارم”. با خودم فکر کردم که یه برنامه بنویسم خودش مسیر دایرکتوری عکس ها و قالب واترمارک رو بگیره و تغییرات رو روشون اعمال کنه، از اونجایی که کار کردن تو سی پلاس پلاس کمی دردسر داشت و مجبور بودم  برنامه رو برا ویندوز کامپایل کنم، ترجیح دادم با پایتون بنویسم، اسکریپت رو نوشتم و به خوبی هم جواب داد، بهش تلفن کردم که “عکس ها رو بیار سر قرار، یه برنامه نوشته ام همونجا برات با لپتاپ تبدیل می کنم”. اسکریپت رو فرستادم به لپتاپ و راهی شدم.
خوشحال بودم که می تونستم مشکل دوستمو در کسری از دقیقه حل کنم، عکس ها رو ریختم رو لپتاپ، همینکه اسکریپت رو اجرا کردم با پیغام ناشناخته بودن cv2 مواجه شدم، یادم افتاد OpenCV رو برا پایتون آماده نکرده ام. برگشتنی با خودم فکر می کردم عادت کردن به کار تو لینوکس همچین دردسر هایی هم داره معمولا تو لینوکس نیازی به انجام  این جور کارها نیست وقتی کتابخانه ای رو از مدیریت بسته ها نصب می کنی خودش بسته های پیشنیاز را هم نصب و تنظیم می کنه و کل کار با زدن چند تا تیک حل میشه.

نصب OpenCV در ویندوز برای پایتون

توجه: از آنجایی که بسته های باینری ۶۴ بیتی برای  NumPy و SciPy  به صورت رسمی از طرف توسعه دهنده ارائه نشده اند پیشنهاد می شود  از پایتون ۳۲ بیتی در ویندوزتان استفاده کنید، چنانکه بر استفاده از نسخه ۶۴ بیتی اصرار دارید می توانید بسته های کامپایل شده ۶۴ بیتی کتابخانه های بالا را در اینجا بیابید.

برنامه های پیش نیازی که باید دانلود کرد:

Python : می توانید آخرین نسخه Python 2.7 را  از سایت پایتون دانلود کنید.
NumPy : یک بسته پایه برای انجام محاسبات علمی در پایتون است که امکان کار با آرایه ها و جبر خطی را گسترش می دهد، می توانید از اینجا دانلود کنید.
OpenCV 2.4 : آخرین نسخه را از اینجا دانلود کنید.

بسته های پیشنهادی که نصب آنها ضروری نیست ولی در اکثر منابع و کاربردها از آن ها در کنار OpenCV  استفاده می شود:

matplotlib : کتابخانه ای که امکان رسم نمودار را در پایتون فراهم می کند، دانلود از اینجا.
SciPy : یک کتابخانه برای انجام اعمال پیشرفته ریاضی در پایتون، دانلود از اینجا.

نصب :

۱. فرآیند نصب Python را بدون تغییری در مراحل پیشفرض نصاب نصب کنید، به صورت پیشفرض در مسیر  C:\Python27  نصب خواهد شد.

۲.حالا بسته های SciPy ، NumPy  و  matplotlib را نصب کنید، دوباره اجازه دهید همه چیز به صورت پیش فرض به جلو برود، نصاب مسیر نصب پایتون را پیدا کرده و فایل های خود را در آن مسیر می ریزد.

۳. فایل دانلودی OpenCV را اجرا کنید و برای استخراج فایل ها مسیر درایو C را وارد کنید.

۴. حال فایل cv2.pyd موجود در مسیر C:\opencv\build\python\2.7 را در آدرس C:\Python27\Lib\site-packages کپی کنید.

۵. اکنون “Python IDLE” ( از  Start > All Programmes > Python 2.7 > Python IDLE ) را اجرا کنید و آنچه در زیر آمده است را تایپ کنید:

>>> import cv2
>>> print cv2.__version__

اگر  در خروجی بدون هیچ خطایی عبارت زیر را داشته باشید (البته بسته به نسخه نصبی OpenCV)، کار تمام است:

>>> 2.4.1
 
منابع (+) (+)

۰۱ خرداد ۹۳ ، ۲۱:۳۲ ۴ نظر موافقین ۱ مخالفین ۰
Hasan