Moi
Mitenköhän Pythonilla onnistuisi lukea muistiin noin 11 000 txt/html-tiedostoa, ettei niitä tarvitsisi lukea levyltä kuin kerran?
Tämän jälkeen niiden lukeminen muistista olisi myös nopeampaa?
Mikä tässä on se ongelma? Ajat loopissa tiedostot läpi ja luet ne muistiin.
Voit lukea tiedostot silmukassa.
# Lista nimistä. tiedostonimet = ["a.txt", "b.html"] # Luetaan tiedostot sanakirjaan. tiedot = dict((nimi, open(nimi).read()) for nimi in tiedostonimet) # Tulostetaan tiedot malliksi. for nimi in tiedostonimet: print("==> %s <==\n%s" % (nimi, tiedot[nimi]))
Modernit käyttöjärjestelmät (ainakin Linux) sisältävät myös automaattisen välimuistin, eli periaatteessa haluamasi asia saattaa tapahtua aivan itsestään. Välimuistilla on yleensä jokin maksimikoko, joten jos tiedostojen koko on vaikka 4 Gt ja koneen muisti on 8 Gt, kaikkia tiedostoja ei ehkä pidetä välimuistissa. Lisäksi välimuistista huolimatta Pythonin ja käyttöjärjestelmän välinen kommunikaatio vie aikaa, ja siksi yllä esitetty ratkaisu on vielä tehokkaampi (kunhan kaikki tiedostot mahtuvat kerralla muistiin).
Aihe on jo aika vanha, joten et voi enää vastata siihen.