Les seccions següents expliquen com crear i desar un fitxer nou a Python utilitzant un nou directori (carpeta) com a destinació.
- Error en especificar un directori inexistent amb open()(
FileNotFoundError
) os.makedirs()
Crea un directori- Exemple de codi per crear un fitxer nou amb una destinació
El següent és un exemple d’un fitxer de text.
Quan emmagatzemeu imatges, depèn de la biblioteca si podeu especificar un camí que inclogui un directori inexistent (o si en crearà un automàticament si no existeix).FileNotFoundError
Si es produeix aquest error, podeu crear un nou directori amb os.madeirs() abans d’executar la funció per desar, com a l’exemple següent.
Error en especificar un directori inexistent amb open()(FileNotFoundError)
Quan es crea un fitxer nou amb la funció integrada open(), es produeix un error si s’especifica un camí que conté un directori nou (un directori que no existeix) com a primer argument com a destinació.(FileNotFoundError
)
open('not_exist_dir/new_file.txt', 'w')
# FileNotFoundError
El primer argument d’open() pot ser un camí absolut o un camí relatiu al directori actual.
Per a l’ús bàsic d’open(), com ara crear un fitxer nou en un directori existent, o sobreescriure o afegir-hi un fitxer existent, consulteu l’article següent.
Crea un directori(os.makedirs())
Quan es crea un fitxer nou en un directori inexistent, és necessari crear el directori abans d’obrir().
Si utilitzeu Python 3.2 o posterior, és convenient utilitzar os.makedirs() amb l’argument exist_ok=True. Fins i tot si el directori de destinació ja existeix, no es produirà cap error i el directori es pot crear alhora.
import os
os.makedirs(new_dir_path, exist_ok=True)
Si teniu una versió anterior de Python i no teniu l’argument exist_ok a os.makedirs(), obtindreu un error si especifiqueu el camí d’accés a un directori que existeix, així que utilitzeu os.path.exists() per comprovar si hi ha. primer l’existència del directori.
if not os.path.exists(new_dir_path):
os.makedirs(new_dir_path)
Consulteu l’article següent per obtenir més informació.
- Articles relacionats:makedirs per crear directoris jeràrquics profunds de forma recursiva a Python
Exemple de codi per crear un fitxer nou amb una destinació
El següent és un exemple de codi d’una funció que crea i desa un fitxer nou especificant el directori de destinació.
El primer argument ruta_dir és la ruta del directori de destinació, el segon argument nomfitxer és el nom del nou fitxer que s’ha de crear i el tercer argument contingut_fitxer és el contingut que s’ha d’escriure, cadascun especificat com a cadena.
Si el directori especificat no existeix, creeu-ne un de 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)
Utilitzeu-lo de la següent manera.
save_file_at_dir('new_dir/sub_dir', 'new_file.txt', 'new text')
En aquest cas, el fitxer new_file.txt amb el contingut “nou text” es crearà a new_dir\sub_dir. En altres paraules, el següent fitxer es crearà de nou.new_dir/sub_dir/new_file.txt
Concatenació de noms de directoris i fitxers amb os.path.join().
A més, el mode d’open() s’especifica com a argument. Per als fitxers de text, la ‘w’ predeterminada està bé, però si voleu crear un fitxer binari, configureu mode=’wb’.