【问题标题】:Ignoring windows hidden files with python glob使用python glob忽略windows隐藏文件
【发布时间】:2013-07-10 07:11:02
【问题描述】:

我正在使用 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

【问题讨论】:

  • 这个答案有帮助吗? (仅限 Windows API)stackoverflow.com/a/14063074/233608
  • 感谢从链接中获得了一些指示。不过感觉有点绕。希望 glob 模块有一些独立于平台的魔力。
  • Jason R. Coombs 在stackoverflow.com/questions/284115/… 的回答可以用于跨平台添加一些代码来做到这一点。搜索 glob 文档无济于事,但我怀疑它是一个 unix 工具,因此它对 windows 的使用不是很友好。我应该删除问题吗? @PiotrDobrogost

标签: python windows macos glob


【解决方案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)

披露:我是维护者。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    相关资源
    最近更新 更多