Stvaranje i spremanje datoteka u novi direktorij u Pythonu

Poslovanje

Sljedeći odjeljci objašnjavaju kako stvoriti i spremiti novu datoteku u Pythonu koristeći novi direktorij (mapu) kao odredište.

  • Pogreška pri određivanju nepostojećeg direktorija s open()(FileNotFoundError)
  • os.makedirs()Napravite imenik
  • Primjer koda za stvaranje nove datoteke s odredištem

Sljedeći je primjer tekstualne datoteke.

Prilikom pohranjivanja slika ovisi o biblioteci možete li odrediti put koji uključuje nepostojeći direktorij (ili će ga automatski stvoriti ako ne postoji).
FileNotFoundErrorAko dođe do ove pogreške, možete stvoriti novi direktorij s os.madeirs() prije izvršavanja funkcije za spremanje, kao u sljedećem primjeru.

Pogreška pri određivanju nepostojećeg direktorija s open()(FileNotFoundError)

Prilikom stvaranja nove datoteke s ugrađenom funkcijom open(), pojavljuje se pogreška ako je staza koja sadrži novi direktorij (direktorij koji ne postoji) navedena kao prvi argument kao odredište.(FileNotFoundError)

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

Prvi argument open() može biti apsolutni put ili put relativan u odnosu na trenutni direktorij.

Za osnovnu upotrebu open(), kao što je stvaranje nove datoteke u postojećem direktoriju ili prepisivanje ili dodavanje postojeće datoteke, pogledajte sljedeći članak.

Napravite imenik(os.makedirs())

Kada kreirate novu datoteku u nepostojećem direktoriju, potrebno je kreirati direktorij prije open().

Ako koristite Python 3.2 ili noviji, prikladno je koristiti os.makedirs() s argumentom exist_ok=True. Čak i ako ciljni direktorij već postoji, neće doći do greške i direktorij se može kreirati odjednom.

import os

os.makedirs(new_dir_path, exist_ok=True)

Ako imate stariju verziju Pythona i nemate argument exist_ok u os.makedirs(), dobit ćete pogrešku ako navedete put do postojećeg direktorija, pa upotrijebite os.path.exists() da provjerite prvo postojanje imenika.

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

Za detalje pogledajte sljedeći članak.

Primjer koda za stvaranje nove datoteke s odredištem

Sljedeći je primjer koda funkcije koja stvara i sprema novu datoteku navođenjem odredišnog direktorija.

Prvi argument dir_path je staza odredišnog direktorija, drugi argument filename je naziv nove datoteke koja će se kreirati, a treći argument file_content je sadržaj koji treba napisati, a svaki je naveden kao niz.

Ako navedeni direktorij ne postoji, stvorite novi.

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)

Koristite na sljedeći način.

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

U tom slučaju, datoteka new_file.txt sa sadržajem “novi tekst” bit će kreirana u new_dir\sub_dir. Drugim riječima, sljedeća datoteka će biti novostvorena.new_dir/sub_dir/new_file.txt

Povezivanje naziva direktorija i datoteka s os.path.join().

Također, način open() je specificiran kao argument. Za tekstualne datoteke, zadani ‘w’ je u redu, ali ako želite stvoriti binarnu datoteku, postavite mode=’wb’.