اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

لا تتوقع وجود خيارات كثيرة في حالة كانت أطوال الأسطر مختلفة، لذلك سوف تحتاج إلى التعامل مع نهايات الأسطر لتعرف عدد الأسطر وأماكنها وذلك عن طريق قراءة الملف على الأقل مرة واحدة باستخدام حلقة التكرار for كما في المثال التالي:

# Read in the file once and build a list of line offsets
line_offset = []
offset = 0
for line in file:
    line_offset.append(offset)
    offset += len(line)
file.seek(0)

# Now, to skip to line n (with the first line being line 0), just do
file.seek(line_offset[n])

كما يمكنك أيضا استخدام وحدة linecache والتي تسمح لك بالحصول على أي سطر من أي ملف لكنها للأسف كما قلنا سابقا تحتاج على الأقل لقراءة الملف مرة واحدة لذلك ستقوم هذه الوحدة بتحميل الملف في الذاكرة.
مثال على استخدام الدالة:

>>> import linecache
>>> linecache.getline('/etc/passwd', 4)
'sys:x:3:3:sys:/dev:/bin/sh\n'

المصدر

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...