الخميس، 12 مارس 2015

كيفية استخدام بروتوكول نقل الملفات (FTP) في بايثون

هناك الكثير من الطرق التي تسمح لنا بتحميل الملفات من الانترنيت باستخدام بايثون والطريقة الأكثر الشعبية هي الاتصال بسيرفر ftp وتحميل الملفات وهذا ما سنقوم بشرحه في هذه التدوينة حتى نتعرف على  كيفية استعمال بروتوكول FTP في بايثون بمساعدة الوحدة ftplib.
تسمح لنا هذه الوحدة بكتابة برامج تقوم بوظائف متنوعة الخاصة ب بروتوكول ftp ، حيث يمكننا الاتصال بسيرفر ftp وتحميل الملفات ومعالجتها على جهاز الكمبيوتر ولا داعي الى تحميل هذه المكتبة لانها موجودة مسبقا وهي تحتوي على جميع الدوال التي تساعدنا على العمل.
وحتى نستفيد من جميع خصائص وحدة ftplib يجب علينا ان نقوم باستدعاء الوحدة الى برنامجنا باستخدام import
 

import ftplib

بعد استدعاء الوحدة علينا ان نقوم بفتح اتصال بيننا وبين سيرفر ftp وقبل ذلك وجب انشاء كائن ، وبعد فتح الاتصال يمكننا استخدام جميع دوال الموجودة في وحدة ftplib.
يوجد نوعين من الدوال الموجودة على وحدة ftplib ، الأولى للتعامل مع الملفات النصية والاخرى للتعامل مع الملفات الثنائية (binary).
ويمكننا طبعا التنقل بكل سهولة في السيرفر وادارة وتحميل الملفات.
سنقوم بأخذ مثال نشرح عليه العمليات الاساسية والمتعلقة ب ftp من اتصال بالسيرفر وعرض الملفات والدلائل الموجودة عليه والتنقل من دليل الى أخر.


import ftplib # استدعاء وحدة ftplib

server_name="ftp.novell.com"
username="anonymous"
password="bwdayley@novell.com"

ftp = ftplib.FTP(server_name, username, password)

print 'Welcome', ftp.getwelcome()#استقبال رسالة ترحيبية من السيرفر
 
print ("File List:")
files = ftp.dir()# عرض جميع محتويات السيرفر من ملفات ودلائل
 
ftp.cwd("/forge")# الانتقال الى دليل فرعي 
 
print ('Forge files are :')
_file=ftp.dir()#عرض محتويات الدليل الفرعي
ftp.quit()
بعد تشغيل البرنامج سيقوم بعرض لنا التالي :





حالة الاتصال 
حتى نتاكد من اننا قد اتصلنا بالسيرفر بنجاح يمكننا استعمال الدالة التالية ftp.getwelcome() حيث تقوم بارسال لنا رسالة ترحيبية من السيرفر ومثالنا السابق سنحصل على رسالة مثل :


رفع ملف الى السيرفر
طبعا الغاية من الاتصال بالسيرفر ليس الاطلاع على الملفات وفقط ، حيث سنحتاج الى رفع الملفات وتحميلها في نفس الوقت ، سنقوم الان برفع ملف السيرفر .
ساقوم بكتابة كود بسيط جدا حتى نفهمه معا.
ملاحظة : ليس من الضروري ان يكون الملفا المراد حمله الى السيرفر موجود في نفس الدليل مع ملف برنامجنا
fichier = "/home/kader/Desktop/example.sh"#الملف الذي اريد رفعه
file1= open(fichier, 'rb') #نقوم بفتح الملف
ftp.storbinary('STOR '+fichier, file1) # هنا نقوم بارسال الملف الى السيرفر
file1.close() # غلق الملف
ftp.quit()
بعدما قمنا بارسال الملف الى السيرفر دعونا نقوم بشرح السطر الذي قام بهذه العملية : STOR '+fichier ' .
عليك أن تعرف ان 'STOR' هو أمر خاص ببروتوكول ftp وليس أمر بايثون ومن خلال هذا الأمر نحن نقول للسيرفران ماتفعله الان مهم جدا وعليك بتخزين الملف التالي STOR  /home/kader/Desktop/example.sh

إعادة تمسية الملفات والمجلدات
قد نحتاج احيانا الى اعادة تسمية الملفات والمجلدات الموجودة على السيرفر ولهذا دعونا نكتشف كيفية عمل ذلك.


rename = ftp.rename("old name", "new name")
وكما رأيتم يمكن تغيير أسماء الملفات بسطر واحد . الأن سأقوم بكتابة جميع العمليات الشائعة على شكل كود بسيط .
# حذف ملف
delete=ftp.delete("File name")

#إنشاء مجلد أودليل جديد
rep=ftp.mkd("Directoty name")
#حذف مجلد أو دليل
del_dir=ftp.rmd("Directory name")
سأقوم فيما بعد بكتابة برنامج كامل واقوم بمشاركتم الكود للاستفادة.

ليست هناك تعليقات:

إرسال تعليق

جلب البيانات من صفحة ويب باستخدام Selenium

  في هذا الدرس، سننشئ أداة لاستخراج البيانات من أي موقع ويب باستخدام Selenium. Selenium هو مشروع مفتوح المصدر يستخدم لأتمتة المتصفحات. وهو ي...