ไม่มีขีดจำกัดที่เข้าถึงได้ (No reachable maximum) สำหรับขนาดไฟล์ที่ Python เปิดได้
- ผู้คนโหลดข้อมูลขนาด Gigabytes เข้า Memory ได้ปกติ
- ขีดจำกัดปฏิบัติขึ้นอยู่กับ: RAM, OS (32-bit vs 64-bit), Processor
- ขีดจำกัดทางทฤษฎี:
sys.maxsize(2⁶³-1 บน 64-bit) แต่จะเจอMemoryErrorก่อนถึงขีดนี้
การจัดการไฟล์ใหญ่ (Large Files)
แทนที่จะอ่านทั้งไฟล์เข้าหน่วยความจำ (f.read()) ให้ใช้:
1. อ่านทีละชิ้น (Chunked Reading)
>> with open('large_file.log', 'r') as f:
... for chunk in iter(lambda: f.read(8192), ''):
... process(chunk)
2. อ่านทีละบรรทัด (Line by Line)
>> with open('large_file.log', 'r') as f:
... for line in f:
... process(line)
3. Memory Mapping (mmap)
>> import mmap
>>> with open('large_file.bin', 'r+b') as f:
... mm = mmap.mmap(f.fileno(), 0)
... # เข้าถึง mm เหมือน bytearray แต่ไม่โหลดทั้งไฟล์
... print(mm[:100])
4. ใช้ Libraries สำหรับ Big Data
pandas.read_csv(chunksize=...)dask,vaex,polars- Out-of-core processingsqlite3- Query แบบไม่ต้องโหลดทั้งไฟล์
สรุป: Python ไม่จำกัดขนาดไฟล์ Hardware และ RAM คือขีดจำกัดจริง