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