Podczas gdy otrzymałeś dobre odpowiedzi, wydaje się, że nikt nie odpowiedział na tę część twojego pytania (jak to często bywa, gdy zadajesz wiele pytań w pytaniu ;-) ...:
Jeśli chodzi o obawy rozmiar pliku, aby co maksymalny rozmiar to rozwiązanie powinno być ograniczone?. I dlaczego ?
Najważniejszą rzeczą jest to, ile pamięci RAM może to specyficzny proces Python rzeczywiście użycie (co jest znane jako „zestaw roboczy”), bez nadmiernego obciążania innych aspektów wydajności całego systemu jest. Jeśli przekroczysz fizyczną pamięć RAM dla swojego "zestawu roboczego", będziesz paginować i wymieniać się na dysk, a twoja wydajność może szybko ulec pogorszeniu (aż do stanu znanego jako "rzucanie", w zasadzie wszystkie dostępne cykle idą do zadania związane z przenoszeniem i wyjmowaniem stron oraz niewielkimi ilościami rzeczywistej pracy mogą zostać wykonane).
Spośród tej sumy, rozsądnie skromna kwota (powiedzmy kilka MB co do zasady, ogólnie) prawdopodobnie zostanie pobrana przez kod wykonywalny (własne pliki wykonywalne Pythona, biblioteki DLL lub .so) oraz kod bajtowy i ogólne wsparcie bazy danych, które są aktywnie potrzebne w pamięci; na typowej nowoczesnej maszynie, która nie wykonuje innych ważnych lub pilnych zadań, możesz prawie zignorować ten narzut w porównaniu do gigabajtów pamięci RAM, które masz ogólnie dostępne (chociaż sytuacja może być inna w systemach wbudowanych, itp.).
Cała reszta jest dostępna dla twoich danych - w tym ten plik, który czytasz do pamięci, a także inne istotne struktury danych. "Modyfikacje" danych pliku zazwyczaj zajmują (przejściowo) dwukrotnie więcej pamięci niż rozmiar zawartości pliku (jeśli trzymasz go w ciągu znaków) - więcej, oczywiście, jeśli przechowujesz kopię stare dane, a także tworzenie nowych zmodyfikowanych kopii/wersji.
Tak więc dla "tylko do odczytu" użyj na typowej nowoczesnej maszynie 32-bitowej z, powiedzmy, 2 GB pamięci RAM ogólnie, odczytywanie do pamięci (powiedzmy) 1,5 GB nie powinno być problemem; ale musi to być znacznie mniej niż 1 GB, jeśli robisz "modyfikacje" (a nawet mniej, jeśli masz inne istotne struktury danych w pamięci!). Oczywiście na dedykowanym serwerze z 64-bitową kompilacją Pythona, 64-bitowym systemem operacyjnym i 16 GB pamięci RAM, praktyczne ograniczenia przed bardzo różnymi - w przybliżeniu proporcjonalnie do znacznie różnej ilości dostępnej pamięci RAM.
Na przykład, tekst Biblii Króla Jakuba dostępny do pobrania here (rozpakowany) to około 4,4 MB; więc w maszynie z 2 GB pamięci RAM można zachować około 400 nieznacznie zmodyfikowanych kopii w pamięci (jeśli nic innego nie wymaga pamięci), ale na komputerze z 16 (dostępnym i adresowalnym) GB pamięci RAM można zachowaj ponad 3000 takich kopii.
Zobacz moje inne komentarz, spamowanie stare posty z duplikatów odpowiedzi nie jest konstruktywne. – Kev