python - macOS - os.listdir 返回以 "."开头的双项?

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

尽管该文件夹有两个文件(a.apkb.apk),os.listdir 函数返回四个文件,例如._b.apk._a.apka.apk、和b.apk。前两个文件从哪里来?如何阻止 Python 列出它们?

软件堆栈:

- OS: macOS Catalina
- Python: 3.7.3

附:文件存储在外部闪存驱动器中,格式为 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()也不 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(".")]

相反。

关于python - macOS - os.listdir 返回以 "."开头的双项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59306977/

相关文章:

python - 使用自己的类进行 pyparsing

python - Python中的重载()运算符

python - Discord.py - 让机器人对其自己的消息使用react

python - 我需要一些帮助来理解这个错误

python - 如何执行另一个python文件然后关闭现有的文件?

python - 遍历django模板中的外键相关表

python - Python 中的竞争条件创建文件夹

python - TypeError : 'ExistingCountries' object is not callable? , Discord.py 重写

python - 如何获取文件夹中文件的过滤列表

python - 从 python 脚本中删除文件