A következő szakaszok elmagyarázzák, hogyan hozhat létre és menthet el egy új fájlt Pythonban egy új könyvtárat (mappát) használva célként.
- Hiba nem létező könyvtár megadásakor az open() parancsban(
FileNotFoundError
) os.makedirs()
Könyvtár létrehozása- Példa kód egy új fájl létrehozására egy célállomással
A következő egy példa egy szöveges fájlra.
A képek tárolásakor a könyvtártól függ, hogy megadható-e olyan elérési útvonal, amely nem létező könyvtárat is tartalmaz (vagy automatikusan létrehozza azt, ha nem létezik).FileNotFoundError
Ha ez a hiba előfordul, akkor a mentési függvény végrehajtása előtt létrehozhat egy új könyvtárat az os.madeirs() segítségével, mint a következő példában.
Hiba nem létező könyvtár megadásakor az open() parancsban(FileNotFoundError)
Amikor egy új fájlt hoz létre a beépített open() függvénnyel, hiba lép fel, ha az első argumentumként egy új könyvtárat (nem létező könyvtárat) tartalmazó útvonal van megadva célként.(FileNotFoundError
)
open('not_exist_dir/new_file.txt', 'w')
# FileNotFoundError
Az open() első argumentuma lehet egy abszolút elérési útvonal vagy az aktuális könyvtárhoz viszonyított elérési útvonal.
Az open() alapvető használatáról, például egy új fájl létrehozásáról egy meglévő könyvtárban, vagy egy meglévő fájl felülírásáról vagy hozzáadásáról a következő cikkben olvashat.
Könyvtár létrehozása(os.makedirs())
Ha új fájlt hoz létre egy nem létező könyvtárban, akkor a könyvtárat az open() előtt kell létrehozni.
Ha a Python 3.2 vagy újabb verziót használod, kényelmes az os.makedirs() parancsot használni az exist_ok=True argumentummal. Még ha a célkönyvtár már létezik is, nem lép fel hiba, és a könyvtár azonnal létrehozható.
import os
os.makedirs(new_dir_path, exist_ok=True)
Ha a Python régebbi verziója van, és az os.makedirs() nem tartalmazza az exist_ok argumentumot, akkor hibaüzenetet kap, ha egy létező könyvtár elérési útvonalát adja meg, ezért először az os.path.exists() segítségével ellenőrizze a könyvtár létezését.
if not os.path.exists(new_dir_path):
os.makedirs(new_dir_path)
A részleteket lásd a következő cikkben.
- Kapcsolódó cikkek:makedirs mély hierarchikus könyvtárak rekurzív létrehozásához Pythonban
Példa kód egy új fájl létrehozására egy célállomással
A következő kódpélda egy olyan függvényt mutat be, amely a célkönyvtár megadásával új fájlt hoz létre és ment el.
Az első argumentum dir_path a célkönyvtár elérési útvonala, a második argumentum filename a létrehozandó új fájl neve, a harmadik argumentum pedig a file_content a kiírandó tartalom, mindegyik egy karakterlánc formájában.
Ha a megadott könyvtár nem létezik, hozzon létre egy újat.
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)
Használja az alábbiak szerint.
save_file_at_dir('new_dir/sub_dir', 'new_file.txt', 'new text')
Ebben az esetben a new_dir\sub_dir könyvtárban létrejön a new_file.txt fájl “új szöveg” tartalommal. Más szóval a következő fájl jön létre újonnan.new_dir/sub_dir/new_file.txt
Könyvtár- és fájlnevek összekapcsolása os.path.join() segítségével.
Az open() módját is meg kell adni argumentumként. Szöveges fájlok esetén az alapértelmezett 'w' megfelelő, de ha bináris fájlt akarsz létrehozni, akkor állítsd be a mode='wb' értéket.