如何在Python中获取目录下的文件类型

2024-05-14 16:06:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的目录结构

Root\
    DirA\
        DirX\
            File.aaa
            File.bbb
        File.ccc
        File.ddd
    DirB\
        File.aaa
        File.ccc
        File.ddd
        File.eee
    File.fff

使用python,我想得到如下所有文件类型的列表:

['aaa','bbb','ccc','ddd','eee','fff']

Tags: 目录列表fffroot结构file文件类型bbb
3条回答
import os
filesext = []
files = ["porns.txt", "girls.mp3", "hello.png", "folder"]
for file_i in files:
    _, ext = os.path.splitext(file_i)
    if ext:
        filesext.append(ext)
print filesext

>>> ['.txt', '.mp3', '.png']
import os

def get_file_types(directory):
    file_ext = []
    for root, directories, files in os.walk(directory):
        for filename in files:
            filepath = os.path.join(root, filename)
            fileName, fileExtension = os.path.splitext(filepath)
            if fileExtension not in file_ext:
                file_ext.append(fileExtension)

    return file_ext  # Self-explanatory.


file_types = get_file_types("d:\\Development\\")
for ty in file_types:
    print ty

m. samy's answer是正确的。不过,使用一个神奇地检查重复项的集合会更有效。你知道吗

import os

def get_file_types(directory):
    file_ext = set()
    for root, directories, files in os.walk(directory):
        for filename in files:
            filepath = os.path.join(root, filename)
            fileName, fileExtension = os.path.splitext(filepath)


    return sorted(file_ext)  # Self-explanatory.


file_types = get_file_types("d:\\Development\\")
for ty in file_types:
    print ty

相关问题 更多 >

    热门问题