دانلود یک لیست از تصاویر با کمک فایل متنی در پایتون
اگر شما هم به دنبال یک اسکریپت هستید که لیستی از فایلها را با یک فایل متنی به آن بدهید و به سادگی آنها را دانلود کنید به آموزش درستی وارد شدهاید. در این نوشته روش ساخت یک برنامه برای فایلها را با کمک یک فایل متنی که شامل آدرسها است با زبان برنامه نویسی پایتون قرار دادهایم.
دانلود یک لیست از تصاویر با کمک فایل متنی در پایتون
ابتدا نیاز است پایتون 3 را در سیستم خود نصب کنید. بعد از نصب پایتون کد زیر را درون یک فایل با نام download.py قرار دهید:
import requests
with open('files.txt','r') as f:
listl=[]
for line in f:
strip_lines=line.strip()
listli=strip_lines.split()
m=listl.append(listli)
for fls in listl:
flsfile = str(fls[0])
r = requests.get(flsfile)
x = flsfile.split("/")
open("files/" + x[len(x)-1], 'wb').write(r.content)
در مرحلهی بعدی یک پوشه با نام files در کنار برنامهی پایتون خود ایجاد کنید. اگر در ترمینال مشغول انجام این کار هستید ابتدا وارد مسیر جاری برنامهی پایتون شوید و از کد زیر استفاده کنید:
mkdir files
حالا وارد ترمینال شوید و پکیج requests را با دستور زیر نصب کنید:
pip3 install requests
حالا یک فایل متنی با نام files.txt ایجاد کنید و آدرس فایلهایی که قصد دارید آنها را دانلود کنید درون این فایل قرار دهید. بعد از انجام مراحل بالا نوبت به اجرای برنامه رسیده است که به سادگی با دستور زیر آن را میتوانید اجرا کنید:
python3 download.py
در صورتی که سوالی در مورد برنامهی بالا دارید در بخش نظرات همین نوشته آن را برای ما بنویسید.



















بهتر نیست برای سرعت بیشتر از کتابخونههایی مثل aiohttp استفاده کنیم؟
استفاده از کتابخانههایی مثل aiohttp میتونه سرعت دانلود رو افزایش بده، اما برای سادگی و درک بهتر کد، از requests استفاده کردیم.
آیا امکان داره پوشه مقصد رو به شکل داینامیک تعیین کرد؟
بله، با کمی تغییر در کد پایتون و دریافت نام پوشه از ورودی کاربر یا یک فایل دیگر، این امکان وجود دارد.
آیا نیاز هست موقع دانلود خطاهای مثل 404 یا 500 رو هم هندل کنیم؟
در حال حاضر این اسکریپت خطاهای شبکه مانند 404 یا 500 را هندل نمیکند، اما میتوانید با افزودن بلوکهای try-except این قابلیت را به آن اضافه کنید
آیا این کد برای لینکهای https هم بدون مشکل کار میکنه؟
بله این کد با استفاده از کتابخانه requests به خوبی با لینکهای https نیز کار میکند.
آیا میشه با همین روش دانلودها رو موازی کرد تا سرعت بیشتر بشه؟
بله با استفاده از کتابخانههایی مانند concurrent.futures در پایتون میتوانید دانلودها را موازی کرده و سرعت را افزایش دهید.