Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Consulta directorio de red
#1
Buenos días, 

Estoy intentando hacer un script que consulte la existencia de un fichero generado diariamente en un directorio de red

La ruta se compondría así siendo el directorio "proveedor" una variable de una lista, y el nombre del fichero con ese formato...

\\red\pedidos\proveedor\junio\pedido230601.txt

He intentado esto que he ido cogiendo de google.... 

Código:
import os
directorio_raiz = r'\\almacen\pedidos'
proveedor = ['000001', '000002', '000003']
directorio_final = 'pedidos\junio'
formato_nombre = 'pedido230601.txt'
for proveedor in proveedor:
    ruta_pedido = os.path.join(directorio_raiz, proveedor, directorio_final, formato_nombre)
    archivos_encontrados = []
    archivos_no_encontrados = []
    if os.path.isdir(ruta_pedido):
        for archivo in os.listdir(ruta_pedido):
            if archivo == formato_nombre:
                archivos_encontrados.append(archivo)
        if archivos_encontrados:
            print(f"Archivos encontrados para el proveedor '{proveedor}':")
            for archivo in archivos_encontrados:
                print(archivo)
        else:
            print(f"No se encontraron archivos para el proveedor '{proveedor}'.")
    else:
        print(f"No se encontró el directorio de el proveedor '{proveedor}'.")
    print()  

Pero solo obtengo como resultado 

No se encontró el directorio de el proveedor '000001'.

No se encontró el directorio de el proveedor '000002'.

No se encontró el directorio de el proveedor '000003'.


:-)   y si existen archivos en la ruta ...


A ver si podéis orientarme.    Muchísimas gracias
Responder
#2
Hola, bienvenido/a.

En principio está este error relativo a usar el mismo nombre para dos variables distintas:

Código:
for proveedor in proveedor:

Sería mejor:

Código:
for proveedor in proveedores:

Cambiando también la definición de la lista más arriba:

Código:
proveedores = ['000001', '000002', '000003']

Por otro lado, recordá siempre usar una r antes de las comillas si vas a incluir barras invertidas \. Por ejemplo:

Código:
ruta = r"C:\archivos\documento.txt"

Saludos
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#3
Muchas gracias, Francisco:

Si, ya corregir esos errores, y continúo con los mismos resultados, yo creo que al componer la ruta, no estoy intercalando la variable correctamente...

veis algo en esa parte de mi código

import os
directorio_raiz = r'\\almacen\pedidos'
proveedor = ['000001', '000002', '000003']
directorio_final = 'pedidos\junio'
formato_nombre = 'pedido230601.txt'
for proveedor in proveedor:
ruta_pedido = os.path.join(directorio_raiz, proveedor, directorio_final, formato_nombre)



muchas gracias
Responder
#4
Hola, seguís con el mismo error:

Código:
proveedor = ['000001', '000002', '000003']
directorio_final = 'pedidos\junio'
formato_nombre = 'pedido230601.txt'
for proveedor in proveedor:

Debería ser:

Código:
proveedores = ['000001', '000002', '000003']
directorio_final = 'pedidos\junio'
formato_nombre = 'pedido230601.txt'
for proveedor in proveedores:

Saludos!
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)