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