الفرق بين المراجعتين ل"Python/linecache"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط
ط
سطر 2: سطر 2:
  
 
يُستخدم التابع <code>tokenize.open</code> لفتح الملفات، وهذا التابع يستخدم <code>tokenize.detect_encoding</code> لقراءة ترميز الملف في حال غياب الرمز الخاص بالترميز المستخدم، ويُعتبر الترميز الافتراضي للملفات هو <code>UTF-8</code>.
 
يُستخدم التابع <code>tokenize.open</code> لفتح الملفات، وهذا التابع يستخدم <code>tokenize.detect_encoding</code> لقراءة ترميز الملف في حال غياب الرمز الخاص بالترميز المستخدم، ويُعتبر الترميز الافتراضي للملفات هو <code>UTF-8</code>.
 
+
==الاستخدام الأساسي==
== الاستخدام الأساسي ==
 
 
تُستخدم التوابع المعرّفة ضمن الوحدة <code>linecache</code> مباشرة دون الحاجة إلى إنشاء كائن منها.
 
تُستخدم التوابع المعرّفة ضمن الوحدة <code>linecache</code> مباشرة دون الحاجة إلى إنشاء كائن منها.
 
+
==توابع الوحدة <code>linecache</code>==
== توابع الوحدة <code>linecache</code> ==
+
===التابع <code>[[Python/linecache/getline|linecache.getline]]</code>===
 
 
=== التابع <code>[[Python/linecache/getline|linecache.getline]]</code> ===
 
 
يعيد السطر المُحدد رقمُه في المعاملات الممرة كسلسلة نصية، ويعيد سلسلة نصية فارغة إن حدث أي خطأ.
 
يعيد السطر المُحدد رقمُه في المعاملات الممرة كسلسلة نصية، ويعيد سلسلة نصية فارغة إن حدث أي خطأ.
 
+
===التابع <code>[[Python/linecache/clearcache|linecache.clearcache]]</code>===
=== التابع <code>[[Python/linecache/clearcache|linecache.clearcache]]</code> ===
 
 
يمحو الكاش المحفوظ فيه جميع المحتويات الخاصة بالملفات المقروءة مسبقًا.
 
يمحو الكاش المحفوظ فيه جميع المحتويات الخاصة بالملفات المقروءة مسبقًا.
 
+
===التابع <code>[[Python/linecache/checkcache|linecache.checkcache]]</code>===
=== التابع <code>[[Python/linecache/checkcache|linecache.checkcache]]</code> ===
 
 
يتحقق التابع من صلاحية محتوى الكاش بمقارنته بالملفات الأصلية، للتأكد من عدم اختلاف محتوى الملف الحقيقي عن المحتوى الموجود في الكاش.
 
يتحقق التابع من صلاحية محتوى الكاش بمقارنته بالملفات الأصلية، للتأكد من عدم اختلاف محتوى الملف الحقيقي عن المحتوى الموجود في الكاش.
 
+
===التابع <code>[[Python/linecache/lazycache|linecache.lazycache]]</code>===
=== التابع <code>[[Python/linecache/lazycache|linecache.lazycache]]</code> ===
+
يحصل هذا التابع على المعلومات الكافية عن وحدة غير معتمدة على الملف" non-file-based" بحيث تكون جاهزة لقراءة أسطرها لاحقًا، مما يسمح بتجنب عمليات الكتابة والقراءة إلى حين وجود حاجة حقيقية لقراءة السطر المطلوب.
يحصل هذا التابع على المعلومات الكافية عن وحدة "غير معتمدة على الملف" non-file-based بحيث تكون جاهزة لقراءة أسطرها لاحقًا، مما يسمح بتجنب عمليات الكتابة والقراءة إلى حين وجود حاجة حقيقية لقراءة السطر المطلوب.
+
==مثال==
 
 
== مثال ==
 
 
<syntaxhighlight lang="python3">
 
<syntaxhighlight lang="python3">
 
>>> import linecache
 
>>> import linecache
سطر 26: سطر 19:
 
'import sys\n'
 
'import sys\n'
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
==المراجع==
== المراجع ==
 
 
[https://pymotw.com/2/linecache/ الوحدة <code>linecache</code> في موقع "وحدة بايثون لهذا الأسبوع"]
 
[https://pymotw.com/2/linecache/ الوحدة <code>linecache</code> في موقع "وحدة بايثون لهذا الأسبوع"]
  

مراجعة 08:37، 24 أغسطس 2018

تتيح وحدة linecache قراءة أسطر الملفات بفعالية، حيث تمت أمثلة العمليات ضمن هذه الوحدة باستخدام مبدأ الكاش cache التي تظهر فائدتها عند الحاجة إلى قراءة العديد من الأسطر من الملف، وتُستخدم هذه الوحدة ضمن الوحدة traceback التي تسترجع أسطرًا من شيفرات بايثون المصدرية لتضمينها ضمن رسالة الخطأ المنسقة.

يُستخدم التابع tokenize.open لفتح الملفات، وهذا التابع يستخدم tokenize.detect_encoding لقراءة ترميز الملف في حال غياب الرمز الخاص بالترميز المستخدم، ويُعتبر الترميز الافتراضي للملفات هو UTF-8.

الاستخدام الأساسي

تُستخدم التوابع المعرّفة ضمن الوحدة linecache مباشرة دون الحاجة إلى إنشاء كائن منها.

توابع الوحدة linecache

التابع linecache.getline

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

التابع linecache.clearcache

يمحو الكاش المحفوظ فيه جميع المحتويات الخاصة بالملفات المقروءة مسبقًا.

التابع linecache.checkcache

يتحقق التابع من صلاحية محتوى الكاش بمقارنته بالملفات الأصلية، للتأكد من عدم اختلاف محتوى الملف الحقيقي عن المحتوى الموجود في الكاش.

التابع linecache.lazycache

يحصل هذا التابع على المعلومات الكافية عن وحدة غير معتمدة على الملف" non-file-based" بحيث تكون جاهزة لقراءة أسطرها لاحقًا، مما يسمح بتجنب عمليات الكتابة والقراءة إلى حين وجود حاجة حقيقية لقراءة السطر المطلوب.

مثال

>>> import linecache
>>> linecache.getline(linecache.__file__, 8)
'import sys\n'

المراجع

الوحدة linecache في موقع "وحدة بايثون لهذا الأسبوع"

الشيفرة المصدرية للوحدة linecache