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).FileNotFoundError
Pokud 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.
- Související články:makedirs k rekurzivnímu vytváření hlubokých hierarchických adresářů v jazyce Python
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'.