Fájlok - merülés pythonban 3
"Kilenc kilométernyi séta nem vicc, különösen az eső alatt" - Harry Kemelman, The Nine Mile Walk
A Windows laptopon 38493 fájl volt, mielőtt telepítettem egy alkalmazást. Telepítés A Python 3 közel 3000 fájlt adott a teljes kötethez. A fájlok a legfontosabb operációs rendszerek elsődleges paradigmája az információ tárolásának; ez a koncepció annyira elcsendesedik, hogy a legtöbb ember nem érzékel valami más alternatívát. Figurativ módon szólva, a számítógép a fájlok tengerébe fullad.
11.2 Olvasás szöveges fájlokból
a_file = open ('példák / chinese.txt', encoding = 'utf-8')
A Python beépített funkciója open (), amely argumentumként adja át a fájlnevet. A példában a fájl neve "examples / chinese.txt" és 5 érdekes dolog van benne:
- Ez nem csak fájlnév, hanem a könyvtár elérési útjának és a fájl nevének kombinációja. Elméletileg egy fájl megnyitása funkció hárítható két paramétert: a fájl elérési útját és a fájl nevét, de open () csak át egy. Python-ban, ha szükséges, akkor minden vagy néhány elérési utat felvehet a könyvtárba.
- Ha megad egy könyvtár útvonalát használt / (közvetlen backslash, slash, jobb perjel) tárgyalása nélkül, hogy milyen operációs rendszert használnak. A Windows az \ (backslash, backslash, perjel, hogy a bal oldalon), hogy adja meg az utat, hogy a könyvtár, és a Linux és MacOS operációs rendszer használ / (előre backslash, slash, jobb perjel). A Pythonban a közvetlen sáv egyszerűen működik, még a Windows rendszeren is.
- A könyvtár elérési útvonala nem egy perjel (perjel) vagy betűvel kezdődik, ez a relatív útvonal. Mit számít? Van türelme, szöcske!
- Ez egy sor. Minden modern operációs rendszer (beleértve a Windows-ot is) a Unicode segítségével tárolja a fájlok és könyvtárak nevét. A Python 3 teljes mértékben támogatja a nem ascii utakat.
- A fájlnak nem a helyi lemezeken kell lennie. Használhat hálózati meghajtókat. Ez a fájl lehet virtuális fájlrendszer objektum (/ proc in linux). Ha a számítógép ezt fájlnak tekinti, és lehetővé teszi fájlként való elérését, a Python képes megnyitni ezt a fájlt.
A nyitott () függvény hívása nem korlátozódik az útvonalparaméternek a fájlra és annak nevére történő átadására. Van még egy kódolt kód. Ó igen, kedves olvasó, ez nagyon szörnyen hangzik!
11.2.1 A kódolás jellemzői megmutatják a szörnyű arcát
Byte bájt; az absztrakció szimbólumai. A karakterlánc egy Unicode karakter. De a lemezen lévő fájlok nem Unicode karakterek sorozata, hanem sorozatos bájtok. Ha egy lemezről egy szöveges fájlt olvas, hogyan tudja a Python ezt a bájtszekvenciát egy karakterláncba konvertálni? Egy bájtot dekódol egy bizonyos kódolási algoritmussal és visszaad egy Unicode karakterkészletet (vagyis mint egy karakterláncot).