قم بتنزيل الأرشيفات والتحقق منها واستخراجها بسهولة
إذا كان لديك مجموعات بيانات أو أرشيفات أخرى تريد إتاحتها للمستخدمين، والتأكد من أن لديهم دائمًا أحدث الإصدارات وتنزيلها بشكل صحيح، فيمكن أن يساعدك fastdownload
.
باستخدام النقطة:
pip install fastdownload
...أو باستخدام كوندا:
conda install -c fastai fastdownload
الموقف الذي قد ترغب فيه باستخدام fastdownload
هو عندما يكون لديك عنوان URL واحد أو أكثر يشير إلى بعض الأرشيفات التي تريد إتاحتها، وتريد التأكد من قيام المستخدمين بتنزيل هذه الأرشيفات بشكل صحيح، وأن لديهم أحدث إصدار، وأن الأمر بهذه السهولة قدر الإمكان بالنسبة لهم للوصول إلى المعلومات الموجودة في تلك الأرشيفات.
يقوم المستخدم فقط باستدعاء طريقة واحدة، FastDownload.get
، ويمرر عنوان URL المطلوب، وسيتم تنزيل عنوان URL واستخراجه إلى الأدلة التي تختارها. يتم إرجاع المسار إلى الملف المستخرج. إذا تم تنزيل عنوان URL هذا بالفعل، فسيتم استخدام الأرشيف أو المحتويات المخزنة مؤقتًا تلقائيًا. ومع ذلك، إذا كان حجم الأرشيف أو تجزئته مختلفًا عما ينبغي أن يكون، فسيتم إبلاغ المستخدم وسيتم تنزيل إصدار جديد.
في المستقبل، قد ترغب في تحديث واحد أو أكثر من أرشيفاتك. عند القيام بذلك، سيضمن fastdownload
حصول المستخدمين على أحدث إصدار، عن طريق التحقق من الأرشيفات التي تم تنزيلها مقابل حجم الملف المحدث ومعلومات التجزئة.
على سبيل المثال، يستخدم fastai
fastdownload
لتوفير الوصول إلى مجموعات البيانات للتعلم العميق. يمكن لمستخدمي fastai
تنزيلها واستخراجها بأمر واحد، باستخدام قيمة الإرجاع للوصول إلى الملفات. يتم وضع الملفات تلقائيًا في الدلائل الفرعية المناسبة لمجلد .fastai
في homedir الخاص بالمستخدم. إذا تم تحديث مجموعة بيانات، فسيتم إعلام المستخدمين في المرة التالية التي يستخدمون فيها مجموعة البيانات، ويتم تنزيل الإصدار الأحدث واستخراجه لهم تلقائيًا.
عندما يقوم المستخدمون بتنزيل أرشيف، سيقوم fastdownload
تلقائيًا بحفظه في الدليل، والتحقق من تطابق الحجم والتجزئة، واستخراج المحتويات. الحد الأدنى للاستخدام للتنزيل والاستخراج هو:
من fastdownload import FastDownloadd = FastDownload()path = d.get('https://...')
بعد ذلك، سيحتوي path
على المسار الذي توجد به الملفات المستخرجة. افتراضيًا، يتم حفظ الأرشيفات في {base}/archive
، ويتم استخراجها إلى {base}/data
. {base}
الافتراضي هو ~/.fastdownload
. إذا كان هناك أكثر من ملف أو مجلد واحد في جذر الأرشيف الذي تم تنزيله، فسيتم إنشاء مجلد جديد في data
المحتويات.
بدلاً من get
، استخدم download
لتنزيل عنوان URL دون استخراجه، أو extract
لاستخراج عنوان URL دون تنزيله (على افتراض أنه تم تنزيله بالفعل إلى دليل archive
). تقبل كل هذه الطرق معلمة force
التي ستقوم بتنزيل/استخراج الأرشيف حتى لو كان موجودًا بالفعل.
يمكنك تغيير أي أو كل مسارات base
archive
data
عن طريق تمريرها إلى FastDownload
:
d = FastDownload(base='~/.mypath', archive='downloaded', data='extracted')
يمكنك إزالة ملف الأرشيف المخزن مؤقتًا و/أو المحتويات المستخرجة باستخدام rm
:
د.رم('https://...')
سيضيف fastdownload
ملف download_checks.py
إلى وحدة Python الخاصة بك والتي تحتوي على أحجام الملفات والتجزئة لأرشيفاتك. يوجد الملف في نفس الدليل الذي توجد به الوحدة التي تختارها، على سبيل المثال:
د = FastDownload(module=fastai.some_module)
ثم استخدم update
لإنشاء أو تحديث الحجم والتجزئة لعنوان URL:
د.تحديث('https://...')
ستجد الآن أن هناك ملفًا يسمى download_checks.py
في نفس الدليل الذي يوجد به fastai.some_module
، والذي يحتوي على إملاء Python مع عنوان URL والحجم والتجزئة لهذا الملف. إذا قمت بتنزيل هذا الملف من قبل إلى مسار archive
الخاص بك، فسيتم استخدامه بدلاً من تنزيل نسخة جديدة. استخدم get(force=True)
أولاً لتنزيل نسخة جديدة حتى لو كانت لديك في أرشيفك.
إذا كان هناك ملف يسمى config.ini
في دليلك base
، فسيتم استخدام archive
المفاتيح data
كقيم افتراضية لـ FastDownload
. يجب أن يكون الملف بتنسيق configparser. إليك نموذج config.ini
:
[DEFAULT] archive = downloaded data = extracted
إذا لم يكن هناك ملف ini موجود، فسيتم إنشاء ملف لك تلقائيًا باستخدام التفاصيل التي قمت بتمريرها إلى FastDownload
.
يمكنك إضافة أي أزواج مفاتيح/قيمة إضافية إلى ملف التكوين الذي تريده. عند الاتصال بـ FastDownload.get
قم بتمرير extract_key
لاستخدام مفتاح آخر غير data
لاختيار موقع للاستخراج إليه.