如何查找目录中的文件数量?

问题描述 投票:0回答:5

如何使用pathlib获取某个文件夹中的文件数量?

from pathlib import Path
fileDir = Path("C:/Users/Jonas/Desktop/Test")
python file count directory pathlib
5个回答
2
投票

您可以使用

.glob()
.rglob()
:

from pathlib import Path
fileDir = Path("C:/Users/Jonas/Desktop/Test")
excelFiles = fileDir.rglob('*.xl*')
print(len(list(excelFiles)))
>>> 3

0
投票

这是我整理的一个小函数,它将列出给定文件夹中的所有文件。然后,您可以使用列表的长度来查看有多少个,或者如果您想对它们执行任何操作,则循环遍历列表:

import os

def list_files(folder, extensions=None):
    file_list = []
    all_files = os.listdir(folder)
    for name in all_files:
        if extensions is not None:
            for ext in extensions:
                if name.endswith(ext):
                    file_list.append(f'{folder}{os.sep}{name}')
        else:
            file_list.append(f'{folder}{os.sep}{name}')
    return file_list

if __name__ == '__main__':
    all_files = list_files('C:/Users/Jonas/Desktop/Test')
    print('total files: ')
    print(len(all_files))

    all_excel_files = list_files('C:/Users/Jonas/Desktop/Test', ['xlsx', 'xls', 'xlsm'])
    print('excel files:')
    print(len(all_excel_files))

0
投票

您可以使用这个:

import os
import glob
files = 0
folder_path = 'your path'
    for filename in glob.glob(os.path.join(folder_path, '*.xls')): # .xls for example
        files += 1

0
投票

如果您需要所有文件的数量,您可以这样做:

from pathlib import Path
fileDir = Path("C:/Users/Jonas/Desktop/Test")

print(len[f for f in fileDir.iterdir()])

如果您需要过滤名称,您可以在

f.name
上添加条件或使用
fileDir.glob()
fileDir.rglob()
,就像其他人建议的那样。例如,

from pathlib import Path
fileDir = Path("C:/Users/Jonas/Desktop/Test")

print(len[f for f in fileDir.iterdir() if len(f.name) < 10])

-1
投票
© www.soinside.com 2019 - 2024. All rights reserved.