منتديات رحيل لكل العرب

منتديات رحيل لكل العرب (https://r7il.com/vb/)
-   قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress (https://r7il.com/vb/f20/)
-   -   إنشاء وحدة خاصة بك (https://r7il.com/vb/t1528/)

مهرة النجدية 01-03-2019 10:21 AM

إنشاء وحدة خاصة بك
 
إنشاء وحدة خاصة بك
أشرنا من قبل بأنّ الوحدة مُجرّد دوال ومتغيّرات، ما يعني بأنّك تستطيع تحويل أي ملف مكتوب بلغة بايثون إلى وحدة ما دام به دوال وأصناف.

سننشئ في هذا المثال وحدة لحساب مربّع عدد ومكعّبه، أي أنّ الوحدة ستحتوي على دالتين square لحساب مُربّع العدد، و cube لحساب مُكعّبه، أنشئ ملفا باسم num.py وضع به ما يلي:

mill = 1000000

def square(x):
return x * x

def cube(x):
return x * x * x
لقد أنشأت الآن وحدة يُمكن أن يستعملها غيرك من المُبرمجين. افتح مُفسّر بايثون واستورد الوحدة num وبعدها جرّب استعمال الدالتين على عدد معيّن:

>>> import num
>>> num.square(3)
9
>>> num.cube(3)
27
>>> num.mill
1000000
لاحظ بأنّنا استطعنا الوصول إلى قيمة المُتغيّر mill كذلك.

يُمكن كذلك استدعاء دالة واحدة فقط:

>>> from num import cube
>>> cube(3)
27
توثيق الوحدة
يُمكنك توثيق الوحدة ليسهل على المبرمجين فهم الدوال ووظائفها، وذلك باستعمال سلسلة التوثيق Docstring تكون داخل ثلاث علامات تنصيص كالتّالي:

"""The num module provides utilties to work on numbers.
"""

mill = 1000000

def square(x):
"""Computes square of a number."""
return x * x

def cube(x):
"""Computes cube of a number."""
return x * x
إذا نفّذت الأمر pydoc على الوحدة، فستجد أن التوثيق قد أضيف تلقائيا.

Help on module num:

NAME
num - The num module provides utilties to work on numbers.

FILE
/home/dyouri/num.py

FUNCTIONS
cube(x)
Computes cube of a number.

square(x)
Computes square of a number.

DATA
mill = 1000000
الوحدة OS
تُمكّن الوحدة os من إجراء عمليات نظام التّشغيل مثل إنشاء المجلّدات وعرض قائمة بالملفات المتواجدة بمجلّد معيّن، أو حتى حذف مُجلّد أو ملف بلغة بايثون.

عرض مسار مجلد العمل الحالي
يُمكنك أن تحصل على مسار المجلّد الحالي بالدّالة getcwd وهي اختصار لـ get current working direcrtory أي (احصل على مُجلّد العمل الحالي)، ويُمكن تنفيذ الدّالة كالتّالي:

>>> import os
>>> os.getcwd()
'/home/dyouri'
إذا كنت تستعمل مُفسّر بايثون في Windows، فالمُخرج سيكون مشابها لما يلي:

'C:\Python27'
إنشاء مجلد جديد
يُمكنك إنشاء مُجلّد بالدالة mkdir مع تمرير اسم المُجلّد كمُعامل:

>>> import os
>>> os.mkdir('New Folder')
بعد تنفيذ الأمر ستجد بأنّ المجلّد قد أضيف إلى قائمة المُجلّدات.

عرض مكونات مجلد معين
يُمكنك كذلك عرض مُكونات مُجلّد بالدّالة listdir وسيكون المخرج عبارة عن قائمة بأسماء الملفات والمجلّدات الموجودة في المسار المُمرّر للدالة. في هذه الحالة سنُمرّر مسار المُجلّد الحالي.

dir = os.getcwd()
os.listdir(dir)
يُمكنك عرض كل عنصر في سطر بحلقة for.

dir = os.getcwd()
list = os.listdir(dir)

for item in list:
print item
إعادة تسمية ملف أو مجلد
يُمكنك إعادة تسمية ملفّ أو مُجلّد بالدّالة rename كما يلي:

os.rename('Old', 'New')
حيث Old هو الاسم القديم، وNew هو الاسم الجديد.

حذف ملف
لحذف ملف يكفي استخدام الدالة remove، مع تمرير مسار الملف.

os.remove('file.txt')
حذف مجلد فارغ
يُمكن حذف مُجلّد فارغ بالدّالة rmdir مع تمرير مسار المجلّد المرغوب حذفه.

os.rmdir('New Folder')
إذا أردت أن تحذف مجلّدا يحتوي على ملفات فيمكن استخدام وحدة Shutil. (انظر القسم التالي).

تنفيذ أوامر النظام
أوامر النّظام هي الأوامر التي تستطيع تنفيذها من الطّرفيّة Terminal أو من برنامج Cmd على Windows.

يُمكنك تنفيذ أوامر النّظام عبر الدالة system وذلك بتمرير الأمر كمُعامل.

os.system('ls')
الوحدة Shutil
تُمكّن الوحدة Shutil من إجراء عمليات على الملفات والمجلّدات، مثل نسخ ملف من مسار إلى مسار آخر أو نقله، أو حذف مُجلّد كامل.

حذف مجلد
كما أشرنا سابقا، تستطيع استخدام os.rmdir لحذف مُجلّد فارغ، لكن ماذا لو أردت حذف به ملفات؟

يُمكنك استخدام الدّالة rmtree من وحدة shutil للقيام بذلك.

import shutil
shutil.rmtree('Folder')
نسخ ملف
يُمكنك استخدام الدّالة copy لنسخ ملف من مسار إلى مسار آخر، الدالة تقبل مُعاملين، المُعامل الأول يُمثّل مسار الملف المراد نسخه، والمُعامل الثاني يُمثّل مسار الملفّ المراد النّسخ إليه.

shutil.copy('file.txt', 'Folder/file.txt')
نقل ملف
لنقل ملفّ يُمكن استخدام الدّالة move عوضا عن الدالة copy الخاصّة بالنّسخ.

shutil.move('file.txt', 'Folder/file.txt')
تمرير معاملات إلى ملف بايثون من الطرفية بالوحدة Sys
تُمكّننا الوحدة sys من تمرير مُعاملات عند تشغيل ملف مكتوب بلغة بايثون، فمثلا يُمكنك أن تكتب برنامجا للطّباعة دون الحاجة إلى الدّخول إلى مُفسّر بايثون. سيكون اسم الملف مثلا print.py وسنمكن من تمرير مُعامل له عند تشغيله كالتالي:

python print.py 'Hello World!'
يُمكن الحصول على المُعاملات الممرّرة على شكل قائمة، وهي مخزّنة في المُتغيّر argv من الوحدة sys.

أنشئ ملفا باسم print.py وضع به ما يلي:

import sys
print sys.argv
إذا قُمت بتشغيل الملفّ مع تمرير معامل أو أكثر فستُطبع قائمة تحتوي على جميع هذه المُعاملات.

جرّب تنفيذ الملف مع تمرير كلمة hello كمُعامل.

python print.py hello
ستجد بأنّ المُخرج سيكون عبارة عن قائمة بعنصرين:

['print.py', 'hello']
العنصر الأول هو اسم الملفّ، والعنصر الثاني هو ما قُمنا بتمريره.

يُمكنك بالطّبع الوصول إلى عنصر محدّد فقط بتحديد رقمه من القائمة:

import sys
print sys.argv[1]
في الشيفرة أعلاه، قمنا بطباعة العنصر الثاني. إذا كرّرت أمر التّشغيل السّابق ستُلاحظ بأنّ المُخرج هو كلمة hello فقط.

لتمرير جملة، يكفي إحاطتها بعلامتي التّنصيص.

python print.py 'Hello World!


الساعة الآن 01:42 PM

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2010, Crawlability, Inc. TranZ By Almuhajir

Security team