الفرق بين المراجعتين لصفحة: «Python/linecache»

من موسوعة حسوب
إنشاء مبدئي
 
طلا ملخص تعديل
سطر 1: سطر 1:
The <code>linecache</code> module allows one to get any line from a Python source file, while attempting to optimize internally, using a cache, the common case where many lines are read from a single file. This is used by the <code>traceback</code> module to retrieve source lines for inclusion in the formatted traceback.
تتيح وحدة <code>linecache</code> قراءة أسطر الملفات بفعالية، حيث تمت أمثلة العمليات ضمن هذه الوحدة باستخدام مبدأ الكاش <code>cache</code> التي تظهر فائدتها عند الحاجة إلى قراءة العديد من الأسطر من الملف، وتُستخدم هذه الوحدة ضمن الوحدة <code>traceback</code> التي تسترجع أسطرًا من شيفرات بايثون المصدرية لتضمينها ضمن رسالة الخطأ المنسقة.


The <code>tokenize.open()</code> function is used to open files. This function uses <code>tokenize.detect_encoding()</code> to get the encoding of the file; in the absence of an encoding token, the file encoding defaults to UTF-8.
يُستخدم التابع <code>tokenize.open</code> لفتح الملفات، وهذا التابع يستخدم <code>tokenize.detect_encoding</code> لقراءة ترميز الملف في حال غياب الرمز الخاص بالترميز المستخدم، ويُعتبر الترميز الافتراضي للملفات هو <code>UTF-8</code>.


The <code>linecache</code> module defines the following functions:
== الاستخدام الأساسي ==
تُستخدم التوابع المعرّفة ضمن الوحدة <code>linecache</code> مباشرة دون الحاجة إلى إنشاء كائن منها.
 
== توابع الوحدة <code>linecache</code> ==
 
=== التابع <code>[[Python/linecache/getline|linecache.getline]]</code> ===
يعيد السطر المُحدد رقمُه في المعاملات الممرة كسلسلة نصية، ويعيد سلسلة نصية فارغة إن حدث أي خطأ.
 
=== التابع <code>[[Python/linecache/clearcache|linecache.clearcache]]</code> ===
يمحو الكاش المحفوظ فيه جميع المحتويات الخاصة بالملفات المقروءة مسبقًا.
 
=== التابع <code>[[Python/linecache/checkcache|linecache.checkcache]]</code> ===
يتحقق التابع من صلاحية محتوى الكاش بمقارنته بالملفات الأصلية، للتأكد من عدم اختلاف محتوى الملف الحقيقي عن المحتوى الموجود في الكاش.
 
=== التابع <code>[[Python/linecache/lazycache|linecache.lazycache]]</code> ===
يحصل هذا التابع على المعلومات الكافية عن وحدة "غير معتمدة على الملف" non-file-based بحيث تكون جاهزة لقراءة أسطرها لاحقًا، مما يسمح بتجنب عمليات الكتابة والقراءة إلى حين وجود حاجة حقيقية لقراءة السطر المطلوب.
 
== مثال ==
<syntaxhighlight lang="python3">
>>> import linecache
>>> linecache.getline(linecache.__file__, 8)
'import sys\n'
</syntaxhighlight>
 
== المراجع ==
[https://pymotw.com/2/linecache/ الوحدة <code>linecache</code> في موقع "وحدة بايثون لهذا الأسبوع"]
 
<span> </span>
 
الشيفرة المصدرية للوحدة <code>[https://github.com/python/cpython/blob/3.7/Lib/linecache.py linecache]</code>

مراجعة 17:15، 22 أغسطس 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