Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ขีดจำกัดขนาดไฟล์สูงสุดที่ Python เปิดได้

ไม่มีขีดจำกัดที่เข้าถึงได้ (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 processing
  • sqlite3 - Query แบบไม่ต้องโหลดทั้งไฟล์

สรุป: Python ไม่จำกัดขนาดไฟล์ Hardware และ RAM คือขีดจำกัดจริง