Vytváření a ukládání souborů do nového adresáře v jazyce Python

Podnikání

Následující části vysvětlují, jak vytvořit a uložit nový soubor v jazyce Python pomocí nového adresáře (složky) jako cíle.

  • Chyba při zadání neexistujícího adresáře pomocí open()(FileNotFoundError)
  • os.makedirs()Vytvoření adresáře
  • Příklad kódu pro vytvoření nového souboru s místem určení

Následuje příklad textového souboru.

Při ukládání obrázků záleží na knihovně, zda můžete zadat cestu, která obsahuje neexistující adresář (nebo zda jej automaticky vytvoří, pokud neexistuje).
FileNotFoundErrorPokud k této chybě dojde, můžete před spuštěním funkce pro uložení vytvořit nový adresář pomocí příkazu os.madeirs(), jako v následujícím příkladu.

Chyba při zadání neexistujícího adresáře pomocí open()(FileNotFoundError)

Při vytváření nového souboru pomocí vestavěné funkce open() dojde k chybě, pokud je jako první argument jako cíl zadána cesta obsahující nový adresář (adresář, který neexistuje).(FileNotFoundError)

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

Prvním argumentem funkce open() může být absolutní cesta nebo cesta relativní k aktuálnímu adresáři.

Základní informace o použití funkce open(), jako je vytvoření nového souboru v existujícím adresáři nebo přepsání či připojení k existujícímu souboru, naleznete v následujícím článku.

Vytvoření adresáře(os.makedirs())

Při vytváření nového souboru v neexistujícím adresáři je nutné adresář vytvořit před funkcí open().

Pokud používáte Python 3.2 nebo novější, je vhodné použít os.makedirs() s argumentem exist_ok=True. I když cílový adresář již existuje, nedojde k chybě a adresář lze vytvořit najednou.

import os

os.makedirs(new_dir_path, exist_ok=True)

Pokud máte starší verzi jazyka Python a nemáte v příkazu os.makedirs() argument exist_ok, dojde k chybě, pokud zadáte cestu k adresáři, který existuje, proto nejprve použijte příkaz os.path.exists() pro ověření existence adresáře.

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

Podrobnosti naleznete v následujícím článku.

Příklad kódu pro vytvoření nového souboru s místem určení

Následuje příklad kódu funkce, která vytvoří a uloží nový soubor zadáním cílového adresáře.

První argument dir_path je cesta k cílovému adresáři, druhý argument filename je název nového souboru, který má být vytvořen, a třetí argument file_content je obsah, který má být zapsán, každý zadaný jako řetězec.

Pokud zadaný adresář neexistuje, vytvoří se 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žijte následující způsob.

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

V tomto případě se v adresáři new_dir\sub_dir vytvoří soubor new_file.txt s obsahem „new text“. Jinými slovy bude nově vytvořen následující soubor.new_dir/sub_dir/new_file.txt

Spojení názvů adresářů a souborů pomocí os.path.join().

Jako argument je uveden také režim funkce open(). Pro textové soubory stačí výchozí 'w', ale pokud chcete vytvořit binární soubor, nastavte mode='wb'.

Copied title and URL