我有一个小脚本,它将标识所有文件类型,更具体的扩展名。
它可以正常运行,不允许重复,仅将扩展名添加到列表中,但是无法识别类型为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)
我的输出:
['849C9593-D756-4E56-8D6E-42412F2A707B', 'ini', 'jpg', 'txt', 'zip', '#TODO', 'py', 'iml']
索引0处的项目是例如在添加的照片中给出的文件,以及元素'#TODO'
答案 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 类型文件,可以将扩展名与''