es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo leer un archivo y luego crear carpetas basadas en los nombres en el archivo en Python.

Actualmente estoy trabajando en un programa que lee un archivo dado y luego crea carpetas basadas en los nombres del archivo. El archivo de texto se encuentra en el directorio del programa. Cuando ejecuto mi código, me da este error:

También crea los archivos, pero son las letras de la primera palabra en el archivo de texto en lugar de todos los nombres. Estoy muy perdido.

Este es mi código:

import os
import sys

my_file = open("new clients.txt", "r")
list = my_file.readlines()
print(list)
for items in list:
    os.mkdir(items)

Los nombres dentro del archivo de texto son:

duck
crane
boris
kat

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error que está recibiendo sugiere que hay un problema con el formato de los nombres de archivo que se están leyendo. Específicamente, el mensaje de error indica que la sintaxis del nombre de directorio es incorrecta, con el nombre de archivo listado como “duck\n”. El “\n” al final del nombre de archivo indica un carácter de nueva línea, lo cual podría estar causando problemas con la creación del directorio.

    Una solución potencial es eliminar el carácter de nueva línea de cada elemento en la lista antes de crear el directorio usando el método rstrip(). Adicionalmente, es posible que desee considerar eliminar cualquier espacio en blanco que esté al principio o al final del nombre del archivo usando el método strip() para asegurar un formato apropiado.

    Aquí hay una versión actualizada de su código que implementa estos cambios:

    import os
    
    with open("new clients.txt", "r") as my_file:
        lines = my_file.readlines()
        for item in lines:
            name = item.rstrip()
            name = name.strip()
            os.mkdir(name)
    

    Este código usa la declaración with para manejar la apertura y el cierre del archivo, y un bucle for para iterar sobre cada línea en el archivo. El método rstrip() es utilizado para eliminar el carácter de nueva línea de cada línea, y el método strip() es utilizado para eliminar cualquier espacio en blanco adicional. Finalmente, el método os.mkdir() es utilizado para crear un directorio con el nombre dado.

Comments are closed.