الفرق بين المراجعتين لصفحة: «Python/linecache/checkcache»
أنشأ الصفحة ب'=التابع <code>linecache.checkcache</code>= يتحقق التابع من صلاحية محتوى الكاش بمقارنته بالملفات الأصلية، لل...' |
|||
سطر 13: | سطر 13: | ||
== المعاملات == | == المعاملات == | ||
==== <code>filename</code> ==== | |||
اسم الملف المُراد التحقق من توافق محتواه في الكاش مع محتواه الحقيقي، في حال عدم تمرير قيمة هذا المُعامل فإن جميع الملفات الموجودة في الكاش يُتحقق من توافقها. | اسم الملف المُراد التحقق من توافق محتواه في الكاش مع محتواه الحقيقي، في حال عدم تمرير قيمة هذا المُعامل فإن جميع الملفات الموجودة في الكاش يُتحقق من توافقها. | ||
==<span>القيمة المعادة</span>== | ==<span>القيمة المعادة</span>== |
المراجعة الحالية بتاريخ 08:35، 24 أغسطس 2018
التابع linecache.checkcache
يتحقق التابع من صلاحية محتوى الكاش بمقارنته بالملفات الأصلية، للتأكد من عدم اختلاف محتوى الملف الحقيقي عن المحتوى الموجود في الكاش، وفي حال وجود الاختلاف فإن محتوى الملف يتم حذفه من الكاش بحيث تُعاد قراءته في المرة القادمة التي يتم فيها استخدام التابع getline.
ملاحظة: في حال كون أحد الملفات مقروءًا بطريقة lazycache فإن هذا التابع لا يقوم بالتحقق من تغيره، بل يتركه كسولًا، حيث كُتبت الملاحظة التالية في شيفرة الوحدة linecache
if len(entry) == 1:
# lazy cache entry, leave it lazy.
continue
البنية العامة
linecache.checkcache(filename=None)
المعاملات
filename
اسم الملف المُراد التحقق من توافق محتواه في الكاش مع محتواه الحقيقي، في حال عدم تمرير قيمة هذا المُعامل فإن جميع الملفات الموجودة في الكاش يُتحقق من توافقها.
القيمة المعادة
None
أمثلة
يبين المثال التالي طريقة استخدام التابع:
>>> import linecache
>>> open('D:\\test.txt').readlines()#استعراض محتويات الملف قبل التعديل
['Hello World\n']
>>> linecache.getline('D:\\test.txt',1)#قراءة سطر باستخدام الوحدة المدروسة
'Hello World\n'
>>> linecache.cache#استعراض محتويات الكاش الحالية
{'D:\\test.txt': (13, 1535098568.2028332, ['Hello World\n'], 'D:\\test.txt')}
>>> with open('D:\\test.txt','a') as f:f.write('How are you!')#تعديل الملف
12
>>> linecache.getline('D:\\test.txt',1)
'Hello World\n'
>>> linecache.getline('D:\\test.txt',2)##نلاحظ عدم وصول الوحدة إلى الأسطر الجديدة بعد التعديل
''
>>> linecache.cache#ونلاحظ عدم تغير محتويات الكاش بعد
{'D:\\test.txt': (13, 1535098568.2028332, ['Hello World\n'], 'D:\\test.txt')}
>>> linecache.checkcache('D:\\test.txt')
>>> linecache.cache#نلاحظ أن محتويات الملف المُعدل قد حُذفت من الكاش
{}
>>> linecache.getline('D:\\test.txt',2)#والآن عند طلب قراءتها يتم إعادة تحديث محتويات الكاش بقراءة الملف من جديد
'How are you!\n'
>>> linecache.cache
{'D:\\test.txt': (25, 1535099138.4333844, ['Hello World\n', 'How are you!\n'], 'D:\\test.txt')}
انظر أيضًا
التابع المضمن open.
العبارة with في بايثون.
مصادر