Delati z datotekami je temeljni del programiranja. V Pythonu je intuitivno in enostavno delati z besedilnimi datotekami. V tem priročniku ti bom pokazal, kako učinkovito pisati podatke v datoteko in kateri koraki so potrebni za to. Po branju tega priročnika boš sposoben ustvariti lastne besedilne datoteke, jih opisati in smiselno upravljati z vsebino.
Najpomembnejši vpogledi
- Načučite, kako odpirati in pisati besedilne datoteke.
- Ravnanje z datotečnimi operacijami v Pythonu je preprosto in strukturirano.
- Obravnava napak je pomemben del procesa.
Korak za korakom vodič
1. Ustvari nov Jupyter Notebook
Začni z ustvarjanjem novega Jupyter Notebooka, v katerem lahko pišeš svojo kodo. To je uporabniku prijazno okolje, ki ti pomaga pri programiranju in testiranju tvoje kode. Moj Notebook imenujem „Opis datoteke“.

2. Odpri datoteko za branje
Najprej potrebuješ besedilno datoteko, v katero želiš pisati. Datoteka mora obstajati, da jo lahko prebereš. Tukaj prideš v igro s kodo open('textdatei.txt', 'r'). „r“ pomeni „read“, kar pomeni, da odpreš datoteko samo za branje.

3. Ustvari novo datoteko za pisanje
Sedaj moraš ustvariti novo datoteko ali prepisati obstoječo, v katero želiš zapisati prebrane podatke. Uporabi open('textdatei2.txt', 'w'). „w“ pomeni „write“ in poskrbi, da se datoteka odpre za pisanje.
4. Iteriraj po vrsticah izvorne datoteke
Da bi iteriral po vrsticah izvorne datoteke, ustvari zanko. Spremenljivka i se ustvari in nastavi na 1. Uporabi zanko kot for vrstica in datotekski_objekt, da preideš skozi vse vrstice in jih zapišeš v svojo novo datoteko.

5. Zapiši podatke v novo datoteko
Znotraj svoje zanke boš zapisoval vrstice v novo datoteko. Koda datoteka_objekt_out.write(f'{i}: {vrstica.strip()}\n') poskrbi, da je vsaka vrstica, ki jo zapišeš v novo datoteko, označena s številko vrstice. Ne pozabi povečati i za 1 po pisanju.
6. Zapri datotečne objekte
Ko zaključiš s pisanjem, je pomembno, da oba datotečna objekta zapreš, da zagotoviš, da so vsi podatki pravilno shranjeni. To storiš s pomočjo datoteka_objekt.close() in datoteka_objekt_out.close().

7. Preveri vsebino nove datoteke
Da bi zagotovil, da je pisanje uspešno, lahko odpreš novo datoteko in preveriš njeno vsebino. Moral bi videti vrstice, ki si jih zapisal v novo datoteko.

8. Razširi vsebino datoteke (neobvezno)
Če želiš datoteko ponovno zapisati, lahko to storiš z open('textdatei2.txt', 'a') (Append). „a“ ti omogoča, da ohraniš obstoječo vsebino datoteke in dodaš nove podatke na konec. Izvedi kodo znova, da se prepričaš, da se datoteka pravilno razširi.

9. Dodaj obravnavo napak
Da bi zagotovil, da je tvoja koda robustna, bi moral dodati obravnavo napak. To storiš, tako da obdajaš svojo kodo s try in except, da ujameš morebitne napake. V except stavku lahko izpišeš sporočilo o napaki.

10. Optimiziraj upravljanje virov
Na koncu lahko uporabiš finally, da zagotoviš, da se viri zaprejo v vsakem primeru, ne glede na to, ali je prišlo do napake ali ne. To izboljša robustnost kode.

Povzetek – ustvarjanje in opisovanje datotek v Pythonu
Sedaj si se naučil, kako odpirati besedilne datoteke s Python, jih opisovati in obravnavati napake. Uporabi primerke, ki so bili priloženi, da uresničiš svoje projekte. Ravnanje z datotekami je koristna spretnost, ki ti lahko pomaga v mnogih primerih.
Pogosta vprašanja
Kako odpreti datoteko v Pythonu?Za odpiranje datoteke v Pythonu uporabi funkcijo open(), npr. open('tvojadatoteka.txt', 'r') za branje.
Kaj pomeni 'w' pri odpiranju datoteke?'w' pomeni „write“ in se uporablja za odpiranje datoteke za pisanje. Če datoteka ne obstaja, se ustvari.
Kako lahko zagotovim, da se datoteka vedno zapre?Uporabi finally stavek v try in except bloku, da varno zapreš datoteko, ne glede na to, ali je prišlo do napake ali ne.
Zakaj bi moral vključiti obravnavo napak v svojo kodo?Obravnava napak pomaga preprečiti nepričakovane zrušitve ter omogoča, da se na težave odzoveš nadzorovano.
Kaj lahko storim, če ne želim, da stara vsebina datoteke izgine?Uporabi metodo „Append“ ('a'), da dodaš novo vsebino na konec datoteke, ne da bi izgubili obstoječo vsebino.