[Python] Sugestão de melhoria de codigo, para abertura de varios arquivos csv em diretorios...

Discussão em 'Python' iniciado por Stack, Março 15, 2025.

  1. Stack

    Stack Membro Participativo

    Boa noite amigos, um amigo me passou um código que ele estava desenvolvendo para que eu pudesse estudar, porem eu gostaria de ver uma melhor alternativa para a abertura de vários arquivos .csv, só que estão em diferentes pastas.

    O código está imenso, creio que seja possível algo melhor com o loop for.

    Tenho conhecimento básico em Python.


    • Os diretórios estão divididos em 4 pastas, nomes de L1 - L2 - L3 - L4


    • dentro de cada destas 4 pastas, tem algumas pastas com o formato de data. Ex: 03_02_20


    • dentro destas pastas com as datas estão os arquivos.csv


    • cada arquivo possui um código diferente no formato do nome, um numero 500 e alguma coisa. EX: L1_503_03_02_20.csv L1_505_03_02_20.csv ....
      L1_508_03_02_20.csv

    Segue o código original abaixo:

    # Importação dos CSVs
    df = pd.DataFrame()
    df1 = pd.DataFrame()
    df2 = pd.DataFrame()
    df3 = pd.DataFrame()
    df4 = pd.DataFrame()
    df5 = pd.DataFrame()

    for DateCSV in AnalysisDate:
    if Line == 'L4':
    df3 = pd.read_csv(
    DiretorioBase + "\\" + DateCSV + "\\" + Line + "_504_" + DateCSV + ".csv", sep=";")
    df3['workcenter'] = 3
    df1 = pd.read_csv(
    DiretorioBase + "\\" + DateCSV + "\\" + Line + "_502_" + DateCSV + ".csv", sep=";")
    df1['workcenter'] = 1
    df2 = pd.read_csv(
    DiretorioBase + "\\" + DateCSV + "\\" + Line + "_503_" + DateCSV + ".csv", sep=";")
    df2['workcenter'] = 2
    df5 = pd.read_csv(
    DiretorioBase + "\\" + DateCSV + "\\" + Line + "_506_" + DateCSV + ".csv", sep=";")
    df5['workcenter'] = 5
    df4 = pd.read_csv(
    DiretorioBase + "\\" + DateCSV + "\\" + Line + "_505_" + DateCSV + ".csv", sep=";")
    df4['workcenter'] = 4
    else:
    df1 = pd.read_csv(DiretorioBase + "\\" + DateCSV + "\\" + Line + "_505_" + DateCSV + ".csv", sep=";")
    df1['workcenter'] = 1
    df2 = pd.read_csv(DiretorioBase + "\\" + DateCSV + "\\" + Line + "_506_" + DateCSV + ".csv", sep=";")
    df2['workcenter'] = 2
    if not(Line == 'L2' and Mes == 2):
    df3 = pd.read_csv(DiretorioBase + "\\" + DateCSV + "\\" + Line + "_503_" + DateCSV + ".csv", sep=";")
    df3['workcenter'] = 3
    df4 = pd.read_csv(DiretorioBase + "\\" + DateCSV + "\\" + Line + "_507_" + DateCSV + ".csv", sep=";")
    df4['workcenter'] = 4
    df5 = pd.read_csv(DiretorioBase + "\\" + DateCSV + "\\" + Line + "_508_" + DateCSV + ".csv", sep=";")
    df5['workcenter'] = 5
    df = df.append(df1).append(df2).append(df3).append(df4).append(df5)

    df['Line'] = Line
    df = df.drop_duplicates(keep='first')

    Continue reading...

Compartilhe esta Página