打开所有不带扩展名的文件-Python

时间:2018-10-12 08:36:16

标签: python directory

您好,我正在尝试编写一个脚本来打开子文件夹等组织的文件夹中没有扩展名的所有文件。

我未能找到一种方法来声明没有特定已知类型的所有文件(有一些PNG和txt,但我想了解如何推广这种方法)

文件夹层次结构:

main
-sub
--file1
--file2.txt
-sub2
--file1
--file2.png

等等(显然,不同文件夹中的文件不同)

所述文件的示例: 1.2.840.113619.2.227.20792477682.2116111104093220.75

3 个答案:

答案 0 :(得分:1)

os.path.splitext(path)

  

将路径名路径拆分为一对(root,ext),使得root + ext == path,并且ext为空或以一个句点开头,并且最多包含一个句点。基本名称上的前导句号将被忽略; splitext('。cshrc')返回('.cshrc','')。

有了它,您可以获得扩展名,然后可以if ext == ""来获取不带扩展名的文件。

答案 1 :(得分:1)

lst = ['png', 'jpg', 'avi']

filename = '1.2.840.113619.2.227.20792477682.2116111104093220.75'
print(filename.split('.')[-1])

if any(i for i in lst if i == filename.split('.')[-1]):
    print('known extension')
else:
    print('Unknown extension')

在脚本中尝试此代码。您可以将其他已知的文件扩展名添加到列表中。如果需要,可以在线找到所有已知扩展名列表。

答案 2 :(得分:0)

对于您提供的文件夹结构,这将是相当通用的方法:

Car is a subtype of Vehicle means that:
(Vehicle -> void) is a subtype of (Car -> void)
((Car -> void) -> void) is a subtype of ((Vehicle -> void) -> void)
(((Vehicle -> void) -> void) -> void) is a subtype of (((Car -> void) -> void) -> void)