尽管该文件夹包含两个文件(a.apk
和b.apk
),但是os.listdir
函数返回了四个文件,例如._b.apk
,._a.apk
,a.apk
和b.apk
。前两个文件来自哪里?如何防止Python列出它们?
软件堆栈:
- OS: macOS Catalina
- Python: 3.7.3
p.s。这些文件存储在外部闪存驱动器中,其格式为ExFAT
。
答案 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(".")]
相反。