import mmap
import os

# --- 准备一个测试文件 ---
with open("demo.txt", "wb") as f:
    f.write(b"Hello, Memory Mapping World!\n" * 1000)

# --- 内存映射读取 ---
with open("demo.txt", "r+b") as f:
    # 创建内存映射对象，0 表示映射整个文件
    mm = mmap.mmap(f.fileno(), 0)

    # 像 bytes 一样操作
    print("前 30 字节:", mm[:30])
    print("查找 'World':", mm.find(b"World"))

    # 直接修改内容（通过索引赋值）
    mm[0:5] = b"HELLO"
    print("修改后前 30 字节:", mm[:30])

    # 像文件一样逐行读取
    mm.seek(0)
    for i, line in enumerate(mm):
        if i >= 2:
            break
        print(f"第 {i} 行:", line)

    mm.close()

# 清理
os.remove("demo.txt")
