识别 "file" 类型的特定文件

Identify specific file of "file" type

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

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)

我的输出:

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

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

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

你可以查看if len(file_name.split('.')) > 1

如果您想检查一些类型的元组

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

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类型的文件,可以将扩展名匹配''