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

قراءة الملفات الكبيرة عبر chunks في بايثون

Adam Ebrahim

السؤال

لدي ملفات قمت بكتابته من خلال سحب البيانات من الإنترنت web scraping  وحجمه 1GB،  كيف أقوم بقراءة هذا الملف جزء بجزء بطريقة chunk؟

هل يمكن إستخدام lazy method للقيام بهذا الأمر؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 2

يمكنك إستخدام هذا الكود

url="https://raw.githubusercontent.com/selva86/datasets/master/BostonHousing.csv" # رابط الملف
response = requests.get(url, stream = True)

text_file = open("data.txt","wb") # إنشاء الملف المحلي
for chunk in response.iter_content(chunk_size=1024):
    text_file.write(chunk) #كتابة جزء في الملف حتى إكمال الملف


text_file.close() # إغلاق الملف

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك عمل ذلك من خلال استخدام yield كالتالي

def read_in_chunks(file_object, chunk_size=1024):
    
    while True:
        data = file_object.read(chunk_size)#يمكننا تحديد الحجم المطلوب قرائته chunk_size باستخدام المعامل 
        if not data:
            break
        yield data


with open('really_big_file.dat') as f:
    for piece in read_in_chunks(f):
        process_data(piece)

تقوم yield بإكمال العمل بدلاً من البداية من الصفر فلن تقوم بقراءة الملف من البداية بل تكمل من حيث توقفت

تم التعديل في بواسطة عبدالباسط ابراهيم
إضافة بعض المعلومات
رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...