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.

Haciendo que el script de Python se ejecute solo desde la carpeta con los archivos.

Tengo un script de Python en el cual me gustaría llamar a archivos csv y xlsx desde una carpeta específica sin tener que especificar el directorio de cada archivo necesario para ejecutar el programa.

import pandas as pd
df = pd.read_excel("WindDirectionWest2.xlsx")
df.drop(df.columns[df.columns.str.contains('unnamed',case = False)],axis = 1, inplace = True)
hey=df["WindDirection"].mean()
print(int(hey))
df = pd.read_excel("WindDirectionSouth2.xlsx")
df.drop(df.columns[df.columns.str.contains('unnamed',case = False)],axis = 1, inplace = True)
he=df["WindDirection"].mean()
print(int(he))
df = pd.read_excel("WindDirectionEast2.xlsx")
df.drop(df.columns[df.columns.str.contains('unnamed',case = False)],axis = 1, inplace = True)
he=df["WindDirection"].mean()
print(int(he))

Entonces, me gustaría tener un código en la parte superior de mi script que llame a una carpeta, lo cual hace que sea redundante escribir la ruta de cada archivo en cada código.

PD: No sé cómo poner el código en Python. Solo puedo ver Javascript, CSS y HTML.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para llamar a varios archivos csv y xlsx desde una carpeta específica en un script de Python, puedes utilizar el módulo pathlib para especificar el directorio y la función glob para recuperar todos los archivos con una cierta extensión. Aquí tienes un ejemplo de cómo modificar tu código existente:

    import pandas as pd
    from pathlib import Path
    import glob
    
    folder_path = Path('/ruta/de/la/carpeta')
    
    # recuperar todos los archivos csv y xlsx en la carpeta
    files = glob.glob(str(folder_path / '*.[cx]sv'))
    
    # recorrer cada archivo y procesar los datos
    for file in files:
        df = pd.read_excel(file)
        df.drop(df.columns[df.columns.str.contains('unnamed', case=False)], axis=1, inplace=True)
        mean_wind_dir = df['WindDirection'].mean()
        print(int(mean_wind_dir))
    

    En este código, folder_path es la ruta al directorio que contiene los archivos csv y xlsx que deseas procesar. glob se utiliza para encontrar todos los archivos con la extensión .csv o .xlsx en ese directorio. La lista resultante de rutas de archivos se recorre para leer cada archivo, procesar los datos e imprimir la dirección media del viento. Con este enfoque, solo necesitas modificar la variable folder_path para trabajar con diferentes directorios de entrada.

Comments are closed.