Vytváranie a ukladanie súborov do nového adresára v jazyku Python

obchodné

Nasledujúce časti vysvetľujú, ako vytvoriť a uložiť nový súbor v jazyku Python s použitím nového adresára (priečinka) ako cieľa.

  • Chyba pri zadaní neexistujúceho adresára pomocou funkcie open()(FileNotFoundError)
  • os.makedirs()Vytvorenie adresára
  • Príklad kódu na vytvorenie nového súboru s cieľom

Nasleduje príklad textového súboru.

Pri ukladaní obrázkov závisí od knižnice, či môžete zadať cestu, ktorá obsahuje neexistujúci adresár (alebo či ho automaticky vytvorí, ak neexistuje).
FileNotFoundErrorAk sa vyskytne táto chyba, môžete pred vykonaním funkcie na uloženie vytvoriť nový adresár pomocou funkcie os.madeirs(), ako v nasledujúcom príklade.

Chyba pri zadaní neexistujúceho adresára pomocou funkcie open()(FileNotFoundError)

Pri vytváraní nového súboru pomocou vstavanej funkcie open() nastane chyba, ak je ako prvý argument zadaná cesta obsahujúca nový adresár (adresár, ktorý neexistuje).(FileNotFoundError)

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

Prvým argumentom funkcie open() môže byť absolútna cesta alebo cesta relatívna k aktuálnemu adresáru.

Základné informácie o použití funkcie open(), ako napríklad vytvorenie nového súboru v existujúcom adresári alebo prepísanie či pridanie do existujúceho súboru, nájdete v nasledujúcom článku.

Vytvorenie adresára(os.makedirs())

Pri vytváraní nového súboru v neexistujúcom adresári je potrebné adresár vytvoriť pred funkciou open().

Ak používate Python 3.2 alebo novší, je vhodné použiť os.makedirs() s argumentom exist_ok=True. Aj keď cieľový adresár už existuje, nedôjde k chybe a adresár sa môže vytvoriť naraz.

import os

os.makedirs(new_dir_path, exist_ok=True)

Ak máte staršiu verziu Pythonu a nemáte argument exist_ok v os.makedirs(), dostanete chybu, ak zadáte cestu k adresáru, ktorý existuje, preto najprv použite os.path.exists() na kontrolu existencie adresára.

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

Podrobnosti nájdete v nasledujúcom článku.

Príklad kódu na vytvorenie nového súboru s cieľom

Nasleduje príklad kódu funkcie, ktorá vytvorí a uloží nový súbor zadaním cieľového adresára.

Prvý argument dir_path je cesta k cieľovému adresáru, druhý argument filename je názov nového súboru, ktorý sa má vytvoriť, a tretí argument file_content je obsah, ktorý sa má zapísať, pričom každý z nich je zadaný ako reťazec.

Ak zadaný adresár neexistuje, vytvorte nový.

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)

Používajte takto.

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

V tomto prípade sa v adresári new_dir\sub_dir vytvorí súbor new_file.txt s obsahom „new text“. Inými slovami, novo sa vytvorí nasledujúci súbor.new_dir/sub_dir/new_file.txt

Zlučovanie názvov adresárov a súborov pomocou os.path.join().

Ako argument sa uvádza aj režim funkcie open(). Pre textové súbory je predvolené 'w' v poriadku, ale ak chcete vytvoriť binárny súbor, nastavte mode='wb'.

Copied title and URL