TheBrain نشر 19 ديسمبر 2015 لدي ملف نصي يبلغ حجمه 1 جيجابايت، وأريد القفز إلى سطر معين دون أن أضطر إلى قراءة كامل الملف، فهل يمكنني فعل ذلك؟ انشر على الشّبكات الاجتماعية رابط هذه المساهمة
0 هشام رزق الله نشر 19 ديسمبر 2015 لا تتوقع وجود خيارات كثيرة في حالة كانت أطوال الأسطر مختلفة، لذلك سوف تحتاج إلى التعامل مع نهايات الأسطر لتعرف عدد الأسطر وأماكنها وذلك عن طريق قراءة الملف على الأقل مرة واحدة باستخدام حلقة التكرار 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' المصدر انشر على الشّبكات الاجتماعية رابط هذه المساهمة
لدي ملف نصي يبلغ حجمه 1 جيجابايت، وأريد القفز إلى سطر معين دون أن أضطر إلى قراءة كامل الملف، فهل يمكنني فعل ذلك؟
انشر على الشّبكات الاجتماعية
رابط هذه المساهمة