MENÜ

Honlap címe

Előző - #7 ASCII táblázat | Tartalomjegyzék | Következő - #9 Chess Square Color

8. GYAKORLAT: FÁJLÍRÁS OLVASÁSA

A fájl I/O vagy fájl bemenet/kimenet lehetővé teszi a programok számára, hogy adatokat olvassanak és írjanak a merevlemezen lévő fájlokra. Ez a gyakorlat csak a szöveg írásának Python-kóddal fájlba, majd az imént létrehozott fájlból való kiolvasásának alapjait mutatja be. A fájl I/O fontos technika, mert lehetővé teszi a programok számára az adatok mentését, így a munka nem vész el a program bezárásakor.

Gyakorlat leírása

Ehhez a gyakorlathoz három függvényt fog írni. Először írjon egy writeToFile() függvényt két paraméterrel a fájl fájlnevéhez és a fájlba írandó szöveghez. Másodszor, írjon egy appendToFile() függvényt, amely megegyezik a writeToFile() függvényrel, kivéve, hogy a fájl írási mód helyett hozzáfűzés módban nyílik meg. Végül írjon egy readFromFile() függvényt egy paraméterrel a fájlnév megnyitásához. Ez a függvény a fájl teljes szöveges tartalmát karakterláncként adja vissza.

Ezeknek a Python-utasításoknak kell létrehozniuk a fájlt, és az assert utasítás ellenőrzi, hogy a tartalom helyes-e:

writeToFile('greet.txt', 'Hello!\n')

appendToFile('greet.txt', 'Viszlát!\n')

assert readFromFile('greet.txt') == 'Szia!\nViszlát!\n'

Ez a kód beírja a szöveget 'Hello!\n' és a greet.txt'Goodbye!\n' nevű fájlba , majd beolvassa a fájl tartalmát, hogy ellenőrizze a helyességét. Ezen utasítások futtatása után törölheti a greet.txt fájlt.

Próbáljon megoldást írni a leírásban szereplő információk alapján. Ha továbbra is problémái vannak ennek a gyakorlatnak a megoldásával, további tippekért olvassa el a Megoldástervezés és a Különleges esetek és Gotchák című részt.

Előfeltétel fogalmak: szöveges fájl olvasása és írása

Megoldás tervezése

A Python beépített open()függvénye egy fájlobjektumot ad vissza, amellyel szöveget olvashat vagy írhat a fájlból és a fájlba. Fel kell hívni open()a with nyilatkozattal, mint például with open(filename, mode) as fileObj:.

A modeparaméter érvényes argumentumai 'r'a szövegfájlokból való olvasás, a "w" a szövegfájlokba írás és 'a' a szövegfájlokhoz való hozzáfűzés (vagyis írás a végére). Ha nincs mód argumentum megadva, akkor a függvény alapértelmezés szerint olvasási módra vált. A fájl írási vagy hozzáfűzési módban történő megnyitása lehetővé teszi a hívást fileObj.write('text goes here'), amely lehetővé teszi, hogy szöveget adjon át a fájlba íráshoz. Ellenkező esetben olvasási módban a hívás fileObj.read()a fájl tartalmát karakterláncként adja vissza.

Különleges esetek és Gotchák

Ha egy fájlt írási módban nyit meg, és a fájl nem létezik, akkor egy üres fájl jön létre. Ha a fájl létezik, a rendszer felülírja egy üres fájllal. A Hozzáfűzés mód az írási móddal szemben szöveget ad a fájl végéhez anélkül, hogy az eredeti tartalom megsemmisülne.

Most próbáljon meg egy megoldást írni az előző szakaszok információi alapján. Ha továbbra is problémái vannak a gyakorlat megoldásával, olvassa el a Megoldássablon részt további tippekért.

Megoldás sablon

Próbáljon először megoldást írni a semmiből. De ha nehézségei vannak, akkor a következő részprogramot használhatja kiindulási helynek. Másolja ki a következő kódot a https://invpy.com/readwritefile-template.py webhelyről , és illessze be a kódszerkesztőbe. Cserélje ki az aláhúzást kódra, hogy működő programot készítsen:

def writeToFile(fájlnév, szöveg):

    # Nyissa meg a fájlt írási módban:

    open(fájlnév, ____) mint fileObj:

        # Írja be a szöveget a fájlba:

        ____.write(text)

 

def appendToFile(fájlnév, szöveg):

    # Nyissa meg a fájlt hozzáfűzés módban:

    ____ open(fájlnév, ____) mint fileObj:

        # Írja a szöveget a fájl végére:

        ____.ír(____)

 

def readFromFile(fájlnév):

    # Nyissa meg a fájlt olvasási módban:

    ____ ____(fájlnév) mint fileObj:

        # Olvassa el a fájl teljes szövegét, és adja vissza karakterláncként:

        return ____.read()

A gyakorlat teljes megoldását az A függelék és a https://invpy.com/readwritefile.py tartalmazza . A program minden lépését megtekintheti, amint az egy hibakereső alatt fut a https://invpy.com/readwritefile-debug/ oldalon .

További irodalom

A fájlok olvasásáról és írásáról a https://automatetheboringstuff.com/2e/ címen az Unalmas dolgok automatizálása Python segítségével című könyvem 9. és 10. fejezetében olvashat .

Előző - #7 ASCII táblázat | Tartalomjegyzék | Következő - #9 Chess Square Color

 

Asztali nézet