Khi bạn nhận được phản hồi tốt, có vẻ như không ai trả lời câu hỏi này của bạn (thường xảy ra khi bạn đặt nhiều câu hỏi trong câu hỏi; -) ...:
Về mối quan tâm về kích thước tệp, với những gì kích thước tối đa, giải pháp này phải là bị giới hạn ?. Và tại sao ?
Điều quan trọng nhất là, bao nhiêu RAM vật lý có thể quá trình Python cụ thể này thực sự sử dụng (những gì được gọi là "làm việc thiết lập"), mà không quá mức xử phạt các khía cạnh khác của hiệu suất tổng thể của hệ thống. Nếu bạn vượt quá RAM vật lý cho "bộ làm việc" của mình, bạn sẽ được phân trang và hoán đổi vào đĩa, và hiệu suất của bạn có thể nhanh chóng bị suy giảm (tới trạng thái được gọi là "đập" về cơ bản là tất cả các chu kỳ có sẵn sẽ nhiệm vụ nhận được các trang trong và ngoài, và số lượng không đáng kể của công việc thực tế thực sự có thể được thực hiện).
Trong tổng số đó, một số tiền khá khiêm tốn (nói một vài MB nói chung) có thể sẽ được đưa lên bằng mã thực thi (các tệp thực thi của Python, DLL hoặc .so) và bytecode và hỗ trợ chung datastructures đang tích cực cần thiết trong bộ nhớ; trên một máy hiện đại tiêu biểu không thực hiện các nhiệm vụ quan trọng hoặc khẩn cấp khác, bạn có thể bỏ qua chi phí này so với gigabyte RAM mà bạn có sẵn (mặc dù tình hình có thể khác trên các hệ thống nhúng, vv).
Tất cả phần còn lại có sẵn cho dữ liệu của bạn - bao gồm tệp này bạn đang đọc vào bộ nhớ, cũng như bất kỳ cấu trúc dữ liệu quan trọng nào khác. "Sửa đổi" dữ liệu của tệp thường có thể mất gấp đôi bộ nhớ (kích thước của nội dung của tệp) (nếu bạn đang giữ nó trong một chuỗi) - tất nhiên, nếu bạn đang giữ một bản sao của dữ liệu cũ cũng như tạo bản sao/phiên bản sửa đổi mới. Vì vậy, đối với "chỉ đọc" sử dụng trên một máy 32-bit hiện đại điển hình với, nói, 2GB RAM tổng thể, đọc vào bộ nhớ (nói) 1,5 GB nên không có vấn đề; nhưng nó sẽ phải được ít hơn đáng kể 1 GB nếu bạn đang làm "sửa đổi" (và thậm chí ít hơn nếu bạn có cấu trúc dữ liệu quan trọng khác trong bộ nhớ!). Tất nhiên, trên một máy chủ chuyên dụng với một bản dựng 64 bit của Python, một hệ điều hành 64 bit và RAM 16 GB, các giới hạn thực tế trước rất khác nhau - xấp xỉ tỷ lệ với số lượng RAM khác nhau thực tế.
Ví dụ: văn bản Kinh thánh của King James có thể tải xuống here (giải nén) là khoảng 4,4 MB; vì vậy, trong một máy có RAM 2 GB, bạn có thể giữ khoảng 400 bản sao đã được sửa đổi một chút trong bộ nhớ (nếu không có gì khác yêu cầu bộ nhớ), nhưng, trong một máy có RAM 16 (có sẵn và địa chỉ), bạn có thể giữ hơn 3000 bản sao như vậy.
Xem bình luận khác của tôi, spam bài viết cũ với câu trả lời trùng lặp là không mang tính xây dựng. – Kev