macOS-os.listdir返回以“。”开头的双项?

时间:2019-12-12 14:39:52

标签: python python-3.x python-os exfat

尽管该文件夹包含两个文件(a.apkb.apk),但是os.listdir函数返回了四个文件,例如._b.apk._a.apka.apkb.apk。前两个文件来自哪里?如何防止Python列出它们?

软件堆栈:

- OS: macOS Catalina
- Python: 3.7.3

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

1 个答案:

答案 0 :(得分:1)

  

前两个文件来自哪里?

对于这一部分,请参见以下问题:https://apple.stackexchange.com/questions/14980/why-are-dot-underscore-files-created-and-how-can-i-avoid-them

  

如何阻止Python列出它们?

os.listdir() os.walk()os.path.walk() (仅在Python 2中)都没有立即禁止此类文件的参数,就像底层操作系统一样,这些是普通文件。正是由UI来区分。

所以您必须自己做:

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

将是一个选择。

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

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

相反。