روش دانلود فایل ها با پایتون
در این نوشته با کمک زبان برنامه نویسی پایتون میخواهیم لیستی از لینکها را که در یک فایل txt قرار دارد را دانلود کنیم. به کمک این آموزش میتوانید یک برنامهی دانلود فایل بسیار کوچک را برای خودتان ایجاد کنید که در محیطهای کامندلاینی از آن استفاده کنید.
روش دانلود فایلها با پایتون
برای شروع یک فایل با نام links.txt ایجاد کنید و در این فایل تمام لینکهایی که میخواهید آنها را دانلود کنید قرار دهید. هر لینک را باید در یک خط از این فایل قرار دهید. سپس یک فایل با نام download.py ایجاد کنید و در آن قطعه کد زیر را قرار دهید:
import requests
import os
from urllib.parse import urlparse
def download_files_from_list(file_path):
with open(file_path, 'r') as file:
file_links = file.readlines()
for link in file_links:
link = link.strip() # Remove any leading/trailing whitespaces, newline characters, etc.
file_name = os.path.basename(urlparse(link).path) # Extract the file name from the URL
try:
response = requests.get(link)
if response.status_code == 200:
with open(file_name, 'wb') as output_file:
output_file.write(response.content)
print(f"File {file_name} downloaded successfully.")
else:
print(f"Failed to download file from {link}. Status code: {response.status_code}")
except Exception as e:
print(f"An error occurred while downloading file from {link}: {e}")
file_path = "links.txt"
download_files_from_list(file_path)
حالا با کمک دستور زیر میتوانید فایلهای مورد نظرتان را با کمک پایتون دانلود کنید.
python download.py
دقت کنید برای اجرای قطعه کد بالا نیاز است پکیج requests را نصب کنید که برای نصب این پکیج نیز میتوانید از دستور زیر استفاده کنید:
pip install requests
اگر نیاز به آموزشهای بیشتری در ارتباط زبان برنامه نویسی پایتون دارید در بخش نظرات این نوشته برای ما بنویسید.


















لازمه هر بار pip install requests کنیم یا یه بار کافی هست؟
فقط یک بار کافی است! بعد از نصب requests با pip install requests این پکیج روی همان محیط پایتون نصب میشود و تا وقتی آن محیط (environment) را پاک نکنید یا تغییر ندهید، نیازی به نصب مجدد نیست.
این روش روی لینوکس هم اجرا میشه؟
بله، چون پایتون و پکیج requests کراسپلتفرم هستند، این روش روی لینوکس، ویندوز و مک به یک شکل کار میکند. تنها نکته این است که مسیر فایلها را طبق سیستم عامل تنظیم کنید.
میشه اینو به یه برنامه گرافیکی وصل کرد؟
بله، میتوانید با استفاده از کتابخانههایی مثل Tkinter یا PyQt رابط گرافیکی ایجاد کنید و لینکها یا دکمه دانلود را به این تابع متصل کنید. در این صورت کاربر بدون خط فرمان فایلها را دانلود خواهد کرد.
این فقط برای فایل txt جواب میده؟
خیر، محدود به فایل txt نیست. فایل txt فقط حاوی لینکها است. شما میتوانید هر نوع فایلی مثل PDF، تصویر، ویدئو و … را با همین کد دانلود کنید، به شرط اینکه لینک مستقیم فایل را داشته باشید.
میشه اینو طوری تغییر داد که فایلها توی یه فولدر خاص ذخیره بشن؟
بله، کافی است قبل از نوشتن فایل مسیر پوشه مورد نظر را مشخص کنید.