Järgnevalt selgitatakse, kuidas luua ja salvestada uus fail Pythonis, kasutades sihtkohana uut kataloogi (kausta).
- Viga olematu kataloogi määramisel funktsiooniga open()(
FileNotFoundError
) os.makedirs()
Looge kataloog- Näidiskood uue faili loomiseks koos sihtkohaga
Järgnevalt on esitatud näide tekstifaili kohta.
Piltide salvestamisel sõltub raamatukogust, kas te saate määrata tee, mis sisaldab olematut kataloogi (või kas ta loob selle automaatselt, kui seda ei ole olemas).FileNotFoundError
Kui see viga ilmneb, võite enne salvestusfunktsiooni käivitamist luua uue kataloogi funktsiooniga os.madeirs(), nagu järgmises näites.
Viga olematu kataloogi määramisel funktsiooniga open()(FileNotFoundError)
Uue faili loomisel sisseehitatud funktsiooniga open() tekib viga, kui esimese argumendina on sihtkohana määratud uut kataloogi sisaldav tee (kataloog, mida ei ole olemas).(FileNotFoundError
)
open('not_exist_dir/new_file.txt', 'w')
# FileNotFoundError
Open() esimene argument võib olla absoluutne tee või praeguse kataloogiga suhteline tee.
Open() põhikasutuse kohta, näiteks uue faili loomine olemasolevasse kataloogi või olemasoleva faili ülekirjutamine või lisamine, vt järgmist artiklit.
Looge kataloog(os.makedirs())
Uue faili loomisel olematusse kataloogi on vaja luua kataloog enne open().
Kui kasutate Python 3.2 või uuemat versiooni, on mugav kasutada funktsiooni os.makedirs() argumendiga exist_ok=True. Isegi kui sihtkataloog on juba olemas, ei teki viga ja kataloogi saab kohe luua.
import os
os.makedirs(new_dir_path, exist_ok=True)
Kui teil on Pythoni vanem versioon ja os.makedirs() ei sisalda argumenti exist_ok, saate vea, kui määrate eksisteeriva kataloogi tee, seega kasutage esmalt kataloogi olemasolu kontrollimiseks funktsiooni os.path.exists().
if not os.path.exists(new_dir_path):
os.makedirs(new_dir_path)
Üksikasjalikumat teavet leiate järgmisest artiklist.
Näidiskood uue faili loomiseks koos sihtkohaga
Järgnevalt on koodinäide funktsioonist, mis loob ja salvestab uue faili, määrates sihtkataloogi.
Esimene argument dir_path on sihtkataloogi tee, teine argument filename on loodava uue faili nimi ja kolmas argument file_content on kirjutatav sisu, mis mõlemad on määratud stringina.
Kui määratud kataloogi ei ole olemas, looge uus kataloog.
import os
def save_file_at_dir(dir_path, filename, file_content, mode='w'):
os.makedirs(dir_path, exist_ok=True)
with open(os.path.join(dir_path, filename), mode) as f:
f.write(file_content)
Kasutage järgmiselt.
save_file_at_dir('new_dir/sub_dir', 'new_file.txt', 'new text')
Sellisel juhul luuakse fail new_file.txt sisuga “new text” faili new_dir\sub_dir. Teisisõnu luuakse järgmine fail.new_dir/sub_dir/new_file.txt
Kataloogide ja failide nimede ühendamine os.path.join() abil.
Samuti on argumendina määratud open() režiim. Tekstifailide puhul sobib vaikimisi 'w', kuid kui soovite luua binaarfaili, siis seadke mode='wb'.