Nagyon gyakran egy (szöveges) fájlban találhatók kiindulási adatok egy számításhoz vagy egy kísérlet kísérletéhez. Ahhoz, hogy ezeket az adatokat manipulálhassuk és számíthassunk vele, meg kell tanulnunk számokként vagy tömbökként olvasni. Hasonlóképpen, a számítás vagy az elemzés eredményét szöveges fájlba kell helyezni ahelyett, hogy az eredmény megőrzése érdekében a képernyőn jelenne meg. Ez különösen akkor szükséges, ha az eredmények hosszú tömbök, vagy amikor nagyszámú fájlt kell feldolgoznunk. Meglátjuk, hogyan lehet szöveges fájlokat, azaz betűket, számokat és írásjeleket írni és olvasni a Python segítségével.

fájlok

9.1. Egyszerű fájl létrehozása¶

Az előző példákban egy fájlt többféle módon nyitottak meg, ahol az első paraméterben feltüntettük a fájl nevét, a másodikban pedig a nyitási mód:

Ugyanígy használhatunk egy for for ciklust az adatok listájának megírásához:

Ily módon létrehozunk egy data.txt nevű fájlt, amelybe két oszlopba beírjuk az első száz pozitív egész számot és azok exponenciális számát (összesen 10 karakterrel és négy tizedessel). A fájl tartalmát bármely szövegszerkesztővel vagy egy linux konzolról láthatjuk a cat használatával, amint azt már tudjuk.

9.2. Fájlok olvasása¶

de így könnyebb megérteni, mit csinálsz valójában.

Fontos megjegyezni, hogy az adatokat (számokat, betűket, karaktereket stb.) Karakterlánc-változókként írják és olvassák. Ezért, ha velük akarunk működni, át kell alakítanunk őket a megfelelő változó típusokká (int, float, list, tömb,.).

Most, hogy minden adat tömbben van, manipulálhatjuk önmagukban. Ne feledje, hogy a split () alapértelmezés szerint szóközökkel elválasztja a szöveg adatait; ha vesszővel vagy más karakterrel akarunk elválasztani, akkor paraméterként fel kell tüntetnünk: split (',') .

9.3. Adatfájlok olvasása és írása a numpy segítségével ¶

Meg kell jegyeznünk, hogy ha több tömböt mentünk egy fájlba ilyen módon, akkor a savetxt () sorba menti mindegyiket, így az x_datos elfoglalja a fájl első sorát, az y_datos pedig a másodikat, nem oszlopokban és olvasás közben. A loadtxt () használatával az x változó az első, y pedig a második sort tartalmazza. Abban az esetben azonban, ha csak egy dimenziós tömböt akarunk menteni, azt egyetlen oszlopba írjuk.

Másrészt, ha elolvassuk a fájlt, és egyetlen tömbbe töltjük az adatokat, nézzük meg, hogy néz ki:

vagyis egy 2 x 100 kétdimenziós tömb, amely először a két sornak, majd 100 oszlopnak felel meg. Ez azt jelenti, hogy ha több oszlopos szövegfájlunk van (a szokásos módon), például a data.txt, amely a következőket tartalmazza:

így olvashatjuk:

de ha közvetlenül át akarjuk adni az egyes tömböknek, akkor az unpack = True paramétert kell használnunk, ami sorokat cserél oszlopokra (a tömb átültetése):

A fentiekre csak akkor van szükség, ha a fájlnak több oszlopa van, ha csak egy van, akkor nem szükséges használni az unpack = True parancsot .

Tegyük fel most, hogy érdekel bennünket az, hogy az 50. sorból származó fájlból olvassuk az adatokat, és ne az elejétől kezdve, és hogy az oszlopokat is vesszővel kell elválasztani szóköz helyett; további paraméterekkel jelezhetjük:

Az egyéb olvasási opciókhoz, például az egyes oszlopok kiválasztásához, egy másik megjegyzés szimbólum meghatározásához, olvassa el a numpy loadtxt () függvény segítségét.