Mahdyar's Blog

My Thoughts

انتقال فایل بین دستگاه‌های مختلف با پایتون

یکی از ساده‌ترین راه‌ها برای انتقال فایل بین دستگاه‌های مختلف با پایتون، استفاده از برنامه‌هایی مثل shareit هست. ولی اون‌ها هم دردرسرهای خودشو داره و اگر مثل من کمی هم وسواسی باشید، احتمالن نخواید یک برنامه شخص ثالث برای انجام دادن چنین کار ساده‌ای نصب کنید.

ما این‌جا از پایتون استفاده می‌کنیم. پایتون به صورت پیش‌فرض، روی مک و لینوکس نصب هست و اگر ویندوز دارید می‌تونید از اینجا دانلودش کنید.

به جز پایتون، نیاز دارید که دستگاه‌هاتون داخل یک‌شبکه باشن و تنظیمات فایروال‌تون هم جلوی این کار رو نگیره.

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

python -V
# ممکن هست برای شما دستور پایتون py باشه:
# py -V

‌این دستور باید یک ورژن نامبر برای شما برگردونه، مثلاً برای من:

Python 3.9.1

رو برگردوند. حالا که مطمئن شدید پایتون رو نصب دارید، به دایرکتوری‌ای که قصد اشتراک‌گذاری‌ش رو دارید برید:

cd ~/Dev/Test

و دستور زیر رو اجرا کنید:

# اگر نسخهٔ پایتون‌تون 3.x هست
python3 -m http.server

# در غیر این‌صورت:
python -m SimpleHTTPServer

به طور پیش‌فرض، با آدرس زیر و روی پورت ۸۰۰۰ می‌تونید به سرور برید:

localhost:8000 

برای من:

انتقال فایل بین دستگاه‌های مختلف با پایتون

خب، تا الآن یک سرور لوکال تستینگ بالا آوردیم، که می‌تونه برای درخواست‌های ناهمگام (async) که مرورگر – به صورت پیش‌فرض و اگر به صورت فایل باز کنید اجازه نمی‌ده – استفاده بشه.

نکته: اگر چیزی روی پورت ۸۰۰۰ دارید، می‌تونید بعد از دستور پورت رو وارد کنید.

مثلاً:

python3 -m http.server 7800
# یا
python -m SimpleHTTPServer 7800

خب، برای دسترسی به این سرور از یک دستگاه دیگه که در همین شبکه هست، می‌تونید آدرس آیپی دستگاه میزبان رو با پورت انتخابی‌تون وارد کنید و فایل‌ها رو دانلود کنید، برای پیدا کردن آیپی دستگاه میزبان‌تون:

# در ویندوز:
ipconfig
# در مک:
ipconfig getifaddr en0
# در لینوکس:
ifconfig -a

که بهتون یک آیپی مثل این می‌ده:

192.168.1.2

و با گذاشتن شماره پورت بعد از اون، می‌تونید به فایل‌هاتون دسترسی داشته باشید:

192.168.1.2:8000
انتقال فایل بین دستگاه‌های مختلف با پایتون

انتقال فایل بین دستگاه‌های مختلف با پایتون به همین سادگی انجام شد! 🙂