J'ai un code

df1 = pd.read_excel('DIRECTORY\\file.xlsm', sheetname='Resume', header=1, usecols='A:I')
#some operations
bf1 =pd.read_excel('DIRECTORY\\file.xlsm', sheetname='Resume', header=1, usecols='K:P')
#some operations

Final_file = pd.concat([df1,bf1], ignore_index=True)

Notez que df et bf lisent le même fichier, la différence réside dans les colonnes en cours de lecture.

J'ai beaucoup de fichiers.

Est-il possible de parcourir les dossiers et sous-dossiers, de rechercher un modèle de nom de fichier et de créer une liste de dataframes à lire, au lieu d'écrire chaque chemin que j'ai?

1
eduardo2111 3 juin 2020 à 14:57

2 réponses

Vous pouvez utiliser la bibliothèque glob pour ce faire -

from glob import glob

filenames = glob('./Folder/pattern*.xlsx')  #pattern is the common pattern in filenames
dataframes = [pd.read_excel(f) for f in filenames] #sequentially read all the files and create a dataframe for each file
master_df = pd.concat(dataframes) #master dataframe after concatenating all the dataframes


1
Rohit upadhyay 3 juin 2020 à 12:16

Voici un extrait de code qui pourrait aider votre cause: -

source = r'C:\Mypath\SubFolder'
for root, dirs, files in os.walk(source):
    for name in files:
        if name.endswith((".xls", ".xlsx",".xlsm")):
            filetoprocess=os.path.join(root,name)
            df=pd.read_excel(filetoprocess, sheetname='Resume', header=1, usecols='A:I')

J'espère que cela pourra aider.

1
Sherin Jayanand 3 juin 2020 à 12:13