Următoarele secțiuni explică modul de creare și salvare a unui nou fișier în Python, utilizând un nou director (folder) ca destinație.
- Eroare la specificarea unui director inexistent cu open()(
FileNotFoundError
) os.makedirs()
Creați un director- Exemplu de cod pentru a crea un nou fișier cu o destinație
Următorul este un exemplu de fișier text.
La stocarea imaginilor, depinde de bibliotecă dacă puteți specifica o cale care să includă un director inexistent (sau dacă va crea automat unul dacă acesta nu există).FileNotFoundError
În cazul în care apare această eroare, puteți crea un nou director cu os.madeirs() înainte de a executa funcția de salvare, ca în exemplul următor.
Eroare la specificarea unui director inexistent cu open()(FileNotFoundError)
Atunci când se creează un fișier nou cu funcția încorporată open(), apare o eroare dacă o cale care conține un director nou (un director care nu există) este specificată ca prim argument ca destinație.(FileNotFoundError
)
open('not_exist_dir/new_file.txt', 'w')
# FileNotFoundError
Primul argument al funcției open() poate fi o cale absolută sau o cale relativă la directorul curent.
Pentru utilizarea de bază a funcției open(), cum ar fi crearea unui nou fișier într-un director existent sau suprascrierea sau adăugarea la un fișier existent, consultați următorul articol.
Creați un director(os.makedirs())
Atunci când se creează un fișier nou într-un director inexistent, este necesar să se creeze directorul înainte de open().
Dacă utilizați Python 3.2 sau o versiune ulterioară, este convenabil să utilizați os.makedirs() cu argumentul exist_ok=True. Chiar dacă directorul țintă există deja, nu se va produce nicio eroare și directorul poate fi creat imediat.
import os
os.makedirs(new_dir_path, exist_ok=True)
Dacă aveți o versiune mai veche de Python și nu aveți argumentul exist_ok în os.makedirs(), veți primi o eroare dacă specificați calea către un director care există, așa că utilizați os.path.exists() pentru a verifica mai întâi existența directorului.
if not os.path.exists(new_dir_path):
os.makedirs(new_dir_path)
Pentru detalii, consultați următorul articol.
Exemplu de cod pentru a crea un nou fișier cu o destinație
Următorul este un exemplu de cod al unei funcții care creează și salvează un fișier nou prin specificarea directorului de destinație.
Primul argument dir_path este calea directorului de destinație, al doilea argument filename este numele noului fișier care urmează să fie creat, iar al treilea argument file_content este conținutul care urmează să fie scris, fiecare fiind specificat sub forma unui șir de caractere.
În cazul în care directorul specificat nu există, se creează unul nou.
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)
Se utilizează după cum urmează.
save_file_at_dir('new_dir/sub_dir', 'new_file.txt', 'new text')
În acest caz, fișierul new_file.txt cu conținutul „new text” va fi creat în new_dir\sub_dir. Cu alte cuvinte, următorul fișier va fi nou creat.new_dir/sub_dir/new_file.txt
Concatenarea numelor de directoare și de fișiere cu os.path.join().
De asemenea, modul de operare al funcției open() este specificat ca argument. Pentru fișierele text, valoarea implicită „w” este bună, dar dacă doriți să creați un fișier binar, setați mode=”wb”.