Crear e gardar ficheiros nun novo directorio en Python

Negocios

As seguintes seccións explican como crear e gardar un ficheiro novo en Python usando un novo directorio (cartafol) como destino.

  • Erro ao especificar un directorio inexistente con open()(FileNotFoundError)
  • os.makedirs()Crear un directorio
  • Código de exemplo para crear un ficheiro novo cun destino

O seguinte é un exemplo dun ficheiro de texto.

Ao almacenar imaxes, depende da biblioteca se pode especificar un camiño que inclúa un directorio inexistente (ou se creará un automaticamente se non existe).
FileNotFoundErrorSe se produce este erro, pode crear un novo directorio con os.madeirs() antes de executar a función para gardar, como no seguinte exemplo.

Erro ao especificar un directorio inexistente con open()(FileNotFoundError)

Cando se crea un ficheiro novo coa función incorporada open(), ocorre un erro se se especifica unha ruta que contén un novo directorio (un directorio que non existe) como primeiro argumento como destino.(FileNotFoundError)

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

O primeiro argumento de open() pode ser un camiño absoluto ou un camiño relativo ao directorio actual.

Para o uso básico de open(), como crear un ficheiro novo nun directorio existente, ou sobrescribir ou engadir a un ficheiro existente, consulte o seguinte artigo.

Crear un directorio(os.makedirs())

Cando se crea un ficheiro novo nun directorio inexistente, é necesario crear o directorio antes de abrir ().

Se está a usar Python 3.2 ou posterior, é conveniente usar os.makedirs() co argumento exist_ok=True. Aínda que o directorio de destino xa exista, non se producirá ningún erro e pódese crear o directorio á vez.

import os

os.makedirs(new_dir_path, exist_ok=True)

Se tes unha versión máis antiga de Python e non tes o argumento exist_ok en os.makedirs(), obterás un erro se especificas o camiño a un directorio que existe, polo que utiliza os.path.exists() para buscar a existencia do directorio primeiro.

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

Consulte o seguinte artigo para obter máis detalles.

Código de exemplo para crear un ficheiro novo cun destino

O seguinte é un exemplo de código dunha función que crea e garda un ficheiro novo especificando o directorio de destino.

O primeiro argumento ruta_dir é a ruta do directorio de destino, o segundo argumento nome de ficheiro é o nome do novo ficheiro que se vai crear e o terceiro argumento contido_ficheiro é o contido que se vai escribir, cada un especificado como unha cadea.

Se o directorio especificado non existe, cree un novo.

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)

Use o seguinte.

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

Neste caso, o ficheiro new_file.txt co contido “new text” crearase en new_dir\sub_dir. Noutras palabras, o seguinte ficheiro crearase de novo.new_dir/sub_dir/new_file.txt

Concatenación de nomes de ficheiros e directorios con os.path.join().

Ademais, o modo de open() especifícase como argumento. Para ficheiros de texto, o predeterminado ‘w’ está ben, pero se queres crear un ficheiro binario, configura mode=’wb’.

Copied title and URL