Lo intenté como;

 files = os.listdir(file_path)
    print(len(files)) <--gets counts of all files in subdirctory too
 for f in files:
  if (f.endswith('.xlsx')):
    print(count of *.clxs files)

Solo necesito contar los archivos de Excel en el directorio raíz. ¿Cómo hacer eso en Python?

0
Ratha 11 oct. 2019 a las 05:11

4 respuestas

La mejor respuesta

Usted puede hacer esto

xslx_files=[]
files = os.listdir(file_path)
    print(len(files)) <--gets counts of all files in subdirctory too
 for f in files:
  if (f.endswith('.xlsx')):
    xslx_files.append(f)
print(len(xslx_files))
1
codebee 11 oct. 2019 a las 02:21

El primer elemento de fileCounts es el número de conteo de archivos raíz, y otros son los de subdirectorios:

import os
fileCounts=[]
for root,dirs,files in os.walk(file_path,topdown=True):
  xlsxFiles=[]
  for f in files:
    if f.endswith(".xlsx"):
      xlsxFiles.append(f)
  fileCounts.append(len(xlsxFiles))
print(fileCounts[0])
0
Xiaoyu Zheng 11 oct. 2019 a las 05:31

Si está utilizando una versión de Python> = 3.4, puede usar pathlib

base_path = pathlib.Path(file_path)
num_spreadsheets = len(list(base_path.glob('*.xlsx')))
1
Iain Shelvington 11 oct. 2019 a las 02:33
import os
for file in os.listdir("/mydir"):
    if file.endswith(".xlsx"):
        print(os.path.join("/mydir", file))
-1
mindless-overflow 11 oct. 2019 a las 02:17
58333362