用python glob忽略windows隐藏文件

时间:2013-07-10 07:11:02

标签: python windows macos glob

我正在使用python脚本移动一些文件。该脚本应该适用于osx和windows。

我正在使用glob模块来选择文件。使用os.path中的isfile方法过滤掉目录。 glob模块自动忽略unix。文件,但似乎它确实抓住了一些Windows隐藏文件。我添加了代码来删除一个似乎出现在windows中的“desktop.ini”。

是否有其他可能出现的Windows文件或是否有办法确保我不在Windows中选择隐藏文件?

files = glob.glob('*')
files = filter(os.path.isfile, files)  # filter out dirs
if "desktop.ini" in files : files.remove('desktop.ini')
# then using "shutil.move" to actually move the files

1 个答案:

答案 0 :(得分:1)

您可能想尝试Formic

from formic import FileSet
fileset = FileSet(directory="/some/where/interesting",
              include="*.py",
              exclude=["desktop.ini", ".*", "addition", "globs", "here"]
              )
for filename in fileset:
    # use shutil to move them

这是一个使用Globs的Python库,但i)已经了解大多数隐藏文件(内置列表here),ii)允许您指定要从结果中排除的任何文件(documentation

披露:我是维护者。