识别“文件”类型的特定文件

时间:2018-09-27 09:09:30

标签: python filesystems

我有一个小脚本,它将标识所有文件类型,更具体的扩展名。 它可以正常运行,不允许重复,仅将扩展名添加到列表中,但是无法识别类型为file的文件,因此我得到了文件名。 由于它没有扩展名,因此我不确定如何识别它们或对其进行排序。 您能否建议如何识别特定文件类型?谢谢 这是我的代码:

import os

ListFiles = os.walk(os.getcwd())
SplitTypes = []
for walk_output in ListFiles:
    for file_name in walk_output[-1]:
        type = file_name.split(".")[-1]
        if type in SplitTypes:
            pass
        else:
            SplitTypes.append(file_name.split(".")[-1])

print(SplitTypes)

Example

我的输出:

['849C9593-D756-4E56-8D6E-42412F2A707B', 'ini', 'jpg', 'txt', 'zip', '#TODO', 'py', 'iml']

索引0处的项目是例如在添加的照片中给出的文件,以及元素'#TODO'

3 个答案:

答案 0 :(得分:2)

您可以检查if len(file_name.split('.')) > 1

如果您要检查一些元组类型

types = ('.jpg', '.png')
if any(t in file_name for t in types):
    pass

答案 1 :(得分:0)

所有文件扩展名都有魔术数字。使用魔术数字,您可以了解文件的文件扩展名。例如,如果您打开一个没有扩展名的文件,但实际上该文件是“ PDF”格式的。您每次打开时都不知道其扩展名。如果PDF文件以“ 25 50 44 46”十六进制签名开头,则使用魔术数字即可理解该文件为“ pdf”。 Some of important file signatures is here

答案 2 :(得分:0)

file类型将没有扩展名。如果您不想在列表中使用文件名,则可以使用os.path.splitext,它将在列表中添加'',指定缺少的扩展名:

ListFiles = os.walk(os.getcwd())
SplitTypes = []
for walk_output in ListFiles:
    for file_name in walk_output[-1]:
        filename,ext = os.path.splitext(file_name)
        if ext in SplitTypes:
            pass
        else:
            SplitTypes.append(ext)

print(SplitTypes)

您将获得类似以下的输出: ['.csv', '.jpg', '.py', '.txt', '']

如果要在目录中查看所有 file 类型文件,可以将扩展名与''

匹配