Seuraavissa kappaleissa kerrotaan, miten luodaan ja tallennetaan uusi tiedosto Pythonissa käyttämällä määränpäänä uutta hakemistoa (kansiota).
- Virhe, kun määrität olemattoman hakemiston komennolla open()(
FileNotFoundError
) os.makedirs()
Luo hakemisto- Esimerkkikoodi uuden tiedoston luomiseksi määränpään kanssa
Seuraavassa on esimerkki tekstitiedostosta.
Kun tallennat kuvia, kirjastosta riippuu, voitko määrittää polun, joka sisältää olemattoman hakemiston (tai luodaanko sellainen automaattisesti, jos sitä ei ole olemassa).FileNotFoundError
Jos tämä virhe ilmenee, voit luoda uuden hakemiston komennolla os.madeirs() ennen tallennusfunktion suorittamista, kuten seuraavassa esimerkissä.
Virhe, kun määrität olemattoman hakemiston komennolla open()(FileNotFoundError)
Kun uutta tiedostoa luodaan sisäänrakennetulla funktiolla open(), syntyy virhe, jos ensimmäisenä argumenttina annetaan määränpääksi polku, joka sisältää uuden hakemiston (hakemisto, jota ei ole olemassa).(FileNotFoundError
)
open('not_exist_dir/new_file.txt', 'w')
# FileNotFoundError
open():n ensimmäinen argumentti voi olla absoluuttinen polku tai polku suhteessa nykyiseen hakemistoon.
Seuraavassa artikkelissa kerrotaan open():n peruskäytöstä, kuten uuden tiedoston luomisesta olemassa olevaan hakemistoon tai olemassa olevan tiedoston korvaamisesta tai liittämisestä siihen.
Luo hakemisto(os.makedirs())
Kun luodaan uusi tiedosto olemattomaan hakemistoon, hakemisto on luotava ennen open() -toimintoa.
Jos käytät Python 3.2:ta tai uudempaa versiota, on kätevää käyttää os.makedirs()-ohjelmaa argumentilla exist_ok=True. Vaikka kohdehakemisto olisikin jo olemassa, virhettä ei tule ja hakemisto voidaan luoda kerralla.
import os
os.makedirs(new_dir_path, exist_ok=True)
Jos sinulla on vanhempi Python-versio eikä os.makedirs()-ohjelmassa ole argumenttia exist_ok, saat virheilmoituksen, jos määrität polun olemassa olevaan hakemistoon, joten tarkista hakemiston olemassaolo ensin os.path.exists()-ohjelmalla.
if not os.path.exists(new_dir_path):
os.makedirs(new_dir_path)
Katso lisätietoja seuraavasta artikkelista.
- Aiheeseen liittyvät artikkelit:makedirs luoda syviä hierarkkisia hakemistoja rekursiivisesti Pythonissa.
Esimerkkikoodi uuden tiedoston luomiseksi määränpään kanssa
Seuraavassa on koodiesimerkki funktiosta, joka luo ja tallentaa uuden tiedoston määrittämällä kohdehakemiston.
Ensimmäinen argumentti dir_path on kohdehakemiston polku, toinen argumentti filename on luotavan uuden tiedoston nimi ja kolmas argumentti file_content on kirjoitettava sisältö.
Jos määritettyä hakemistoa ei ole olemassa, luo uusi hakemisto.
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)
Käytä seuraavasti.
save_file_at_dir('new_dir/sub_dir', 'new_file.txt', 'new text')
Tässä tapauksessa tiedosto new_file.txt, jonka sisältö on ”uusi teksti”, luodaan new_dir\sub_dir -hakemistoon. Toisin sanoen seuraava tiedosto luodaan uudelleen.new_dir/sub_dir/new_file.txt
Hakemistojen ja tiedostojen nimien yhdistäminen os.path.join() -toiminnolla.
Myös open():n tila määritetään argumenttina. Tekstitiedostoille oletusarvo 'w' on hyvä, mutta jos haluat luoda binääritiedoston, aseta mode='wb'.