Ustvarjanje in shranjevanje datotek v nov imenik v programu Python

Posel

V naslednjih razdelkih je razloženo, kako ustvariti in shraniti novo datoteko v programu Python z uporabo novega imenika (mape) kot cilja.

  • Napaka pri navedbi neobstoječega imenika s funkcijo open()(FileNotFoundError)
  • os.makedirs()Ustvarite imenik
  • Primer kode za ustvarjanje nove datoteke z destinacijo

V nadaljevanju je prikazan primer besedilne datoteke.

Pri shranjevanju slik je od knjižnice odvisno, ali lahko določite pot, ki vključuje neobstoječi imenik (ali pa ga knjižnica samodejno ustvari, če ne obstaja).
FileNotFoundErrorČe pride do te napake, lahko pred izvedbo funkcije za shranjevanje ustvarite nov imenik z os.madeirs(), kot v naslednjem primeru.

Napaka pri navedbi neobstoječega imenika s funkcijo open()(FileNotFoundError)

Pri ustvarjanju nove datoteke z vgrajeno funkcijo open() se pojavi napaka, če je kot prvi argument kot cilj navedena pot, ki vsebuje nov imenik (imenik, ki ne obstaja).(FileNotFoundError)

open('not_exist_dir/new_file.txt', 'w')
# FileNotFoundError

Prvi argument funkcije open() je lahko absolutna pot ali pot glede na trenutni imenik.

Za osnovno uporabo funkcije open(), kot je ustvarjanje nove datoteke v obstoječem imeniku ali prepisovanje ali dodajanje k obstoječi datoteki, glejte naslednji članek.

Ustvarite imenik(os.makedirs())

Pri ustvarjanju nove datoteke v neobstoječem imeniku je treba pred funkcijo open() ustvariti imenik.

Če uporabljate Python 3.2 ali novejšo različico, je primerno uporabiti os.makedirs() z argumentom exist_ok=True. Tudi če ciljni imenik že obstaja, ne bo prišlo do napake in imenik se lahko ustvari naenkrat.

import os

os.makedirs(new_dir_path, exist_ok=True)

Če imate starejšo različico programa Python in v ukazu os.makedirs() nimate argumenta exist_ok, boste dobili napako, če navedete pot do imenika, ki obstaja, zato najprej uporabite ukaz os.path.exists() za preverjanje obstoja imenika.

if not os.path.exists(new_dir_path):
    os.makedirs(new_dir_path)

Podrobnosti najdete v naslednjem članku.

Primer kode za ustvarjanje nove datoteke z destinacijo

V nadaljevanju je primer kode funkcije, ki ustvari in shrani novo datoteko z navedbo ciljnega imenika.

Prvi argument dir_path je pot do ciljnega imenika, drugi argument ime datoteke je ime nove datoteke, ki jo je treba ustvariti, tretji argument vsebina_datoteke pa je vsebina, ki jo je treba zapisati.

Če navedeni imenik ne obstaja, ustvarite novega.

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)

Uporabite na naslednji način.

save_file_at_dir('new_dir/sub_dir', 'new_file.txt', 'new text')

V tem primeru bo datoteka new_file.txt z vsebino “novo besedilo” ustvarjena v mapi new_dir\sub_dir. Z drugimi besedami, na novo bo ustvarjena naslednja datoteka.new_dir/sub_dir/new_file.txt

Povezovanje imen imenikov in datotek z os.path.join().

Kot argument je naveden tudi način funkcije open(). Za besedilne datoteke je privzeta vrednost 'w' primerna, če pa želite ustvariti binarno datoteko, nastavite mode='wb'.

Copied title and URL