macOS - os.listdir returns 以“.”开头的双项?

macOS - os.listdir returns double items which starts with "."?

尽管该文件夹有 两个 个文件(a.apkb.apk),os.listdir 函数 returns 四个 个文件,例如._b.apk._a.apka.apkb.apk。前两个文件来自哪里?我怎样才能阻止 Python 列出它们?

软件堆栈:

- OS: macOS Catalina
- Python: 3.7.3

p.s。文件存储在外部闪存驱动器中,格式为 ExFAT.

Where do the first two files come from?

这部分请看这个问题:https://apple.stackexchange.com/questions/14980/why-are-dot-underscore-files-created-and-how-can-i-avoid-them

How can I prevent Python to list them?

os.listdir() nor os.walk() nor os.path.walk()(仅在Python2)都没有参数立即抑制这种文件,至于底层OS ,这些是普通文件。是 UI 造成了这种区别。

所以你必须自己做:

files = [i for i in os.listdir(".") if not i.startswith("._")]

将是一种选择。

如果您想隐藏所有隐藏文件(即所有以 . 开头的文件),请执行

files = [i for i in os.listdir(".") if not i.startswith(".")]

相反。