Failide loomine ja salvestamine uude kataloogi Pythonis

Äri

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).
FileNotFoundErrorKui 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'.