Mam dane przechowywane w zbiorze plików lub w pojedynczym złożonym pliku. Plik złożony jest tworzony przez połączenie wszystkich oddzielnych plików, a następnie poprzedzający wszystko nagłówkiem, który podaje przesunięcia i rozmiary części składowych. Chciałbym mieć obiekt plikopodobny, który przedstawia plik złożony w widoku , gdzie widok reprezentuje tylko jeden z plików składowych. (W ten sposób mogę mieć funkcje do odczytu danych, które akceptują rzeczywisty obiekt pliku lub obiekt "widok", i nie muszą się martwić o to, jak dany konkretny zestaw danych jest przechowywany.) Jaka biblioteka zrobi to za mnie?Jak traktować sekcję pliku tak, jakby był samym plikiem?
Klasa mmap
wyglądała obiecująco, ponieważ została zbudowana z pliku, długości i przesunięcia, co jest dokładnie tym, co mam, ale przesunięcie musi zostać wyrównane z granularnością alokacji bazowego systemu plików, a pliki I ' odczyt m nie spełnia tego wymogu. Nazwa nazwa z klasy MultiFile
pasuje do rachunku, ale jest dostosowana do załączników w wiadomościach e-mail, a moje pliki nie mają tej struktury.
Operacje na plikach, którymi jestem najbardziej zainteresowany, to: read
, seek
i tell
. Pliki, które czytam, są binarne, więc funkcje zorientowane na tekst, takie jak readline
i , nie są tak ważne. Mogę ewentualnie potrzebować również write
, ale jestem gotów zrezygnować z tej funkcji, ponieważ nie jestem pewien, jak powinno się zachować dołączanie.
Czy można po prostu owinąć obiekt pliku w klasie wygody, która ma 'read',' seek' i 'tell' metody, które obliczają rzeczywistą pozycję pliku z pseudo-pozycji? – mgilson
Ponadto, jak duże są pliki? Czy są wystarczająco małe, aby zmieścić się wygodnie w pamięci? Jeśli tak jest, możesz być w stanie porwać je za pomocą 'StringIO' – mgilson
_" [..], ale offset musi być wyrównany do granularności alokacji bazowego systemu plików, a pliki które czytam nie spełniają ten wymóg. "_ ... czy możesz to wyjaśnić? –