【问题标题】:How to ignore hidden files in python functions? [duplicate]如何忽略python函数中的隐藏文件? [复制]
【发布时间】:2013-03-05 23:01:19
【问题描述】:

在使用 os.path.getsize() 和 os.path.isfile 时,我的脚本也返回了我不需要的 .DS_Store 文件。我该如何忽略这些?

import os

root = "/Users/Siddhartha/Desktop/py scripts"
for item in os.listdir(root):
    if os.path.isfile(os.path.join(root, item)):
        print item

【问题讨论】:

  • item.startswith(".")?
  • 您是否只想忽略 .DS_Store、任何被 Finder 视为“隐藏”的内容、任何被 Finder 视为“隐藏”的内容或其在每个平台上的等价物……?
  • 或者可能是 stackoverflow.com/questions/284115/… 的重复,这取决于该问题的答案。
  • 我只是想忽略 .DS_Store。我同意,这是重复的,但我在尝试搜索时没有找到这些答案。
  • 如果您只是想忽略.DS_Store,为什么不直接忽略if item != '.DS_Store':?这避免了必须准确定义您想要“隐藏文件”的含义(以及您希望它如何在其他平台上工作等)然后实现它,这比“忽略 .DS_Store 文件”要困难得多。

标签: python


【解决方案1】:

假设你想忽略所有以.开头的文件:

import os

root = "/Users/Siddhartha/Desktop/py scripts"
for item in os.listdir(root):
    if not item.startswith('.') and os.path.isfile(os.path.join(root, item)):
        print item

【讨论】:

  • 哦,我明白了。隐藏文件总是以句点开头吗?谢谢!
  • 在某些操作系统上是这样,但不适用于 Windows。有关更通用的解决方案,请参阅此答案:stackoverflow.com/a/6365265/505154
  • Mac OS X 也不是这样,这是 OP 关心的情况。文件可以通过属性在文件系统级别隐藏。然后,最重要的是,就 NSOpenPanel(或 Finder.app)而言,它们可以隐藏在 Finder 信息级别,或者通过诸如“不显示”~/Library 之类的隐含规则(在 10.7+ ) 等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-13
  • 1970-01-01
  • 1970-01-01
  • 2012-09-25
  • 2013-10-20
  • 1970-01-01
  • 2015-04-09
相关资源
最近更新 更多