循环遍历没有扩展名的二进制文件

时间:2016-11-05 14:54:33

标签: python binary iteration

我一直在寻找用python循环遍历目录中文件的方法,我发现了这个问题:

Loop through all CSV files in a folder

关键是我拥有的文件是二进制文件,最后没有文件扩展名。 我希望我的程序要做的是遍历所有没有扩展名的文件。

无论如何使用通配符来应用它? (或者其他任何方式?)

4 个答案:

答案 0 :(得分:1)

听起来你感兴趣的是

[f for f in next(os.walk(folder))[2] if '.' not in f]

答案 1 :(得分:1)

您可以使用os.path.splitext检查文件是否有扩展名。

见这个例子:

import os

os.path.splitext("foo.ext")
=> ('foo', '.ext')

os.path.splitext("foo")
=> ('foo', '')

所以,你可以这样做:

import os

path = "path/to/files"
dirs = os.listdir(path)

for path in dirs:
    if not os.path.splitext(path)[1]:
        print(path)

但是,要注意"隐藏"名称以点开头的文件,即:" .bashrc"。

您还可以检查文件名中是否存在点:

for path in dirs:
    if "." not in path:
        print(path)

答案 2 :(得分:0)

我建议使用os.listdir(),然后检查文件名是否有扩展名(检查文件名中是否有点)。一旦你得到所有没有点的文件名(也就是没有扩展名),只要确保文件名不是实际的目录名,那就是它。

答案 3 :(得分:0)

您可以使用glob module 并过滤掉任何带扩展名的文件:

import glob

for filename in (filename for filename in glob.iglob('*') if '.' not in filename):
    print(filename)