如何在 Python 3.10.x 中忽略
os.scandir()
中的隐藏文件夹?
import os
for dir in os.scandir('C:/'):
print(dir.path)
我不想要这些路径。
我想要这些路径。
这篇文章适用于隐藏文件,但它也适用于文件夹: 跨平台隐藏文件检测
这是包含 1 个隐藏文件夹和一个文件的文件夹。它们在最终输出中被忽略,只列出非隐藏目录:
import os
if os.name == 'nt':
import win32api, win32con
def file_is_hidden(p):
if os.name== 'nt':
attribute = win32api.GetFileAttributes(p)
return attribute & (win32con.FILE_ATTRIBUTE_HIDDEN | win32con.FILE_ATTRIBUTE_SYSTEM)
else:
return p.startswith('.') #linux-osx
file_list = [f for f in os.listdir(".") if not file_is_hidden(f) and os.path.isdir(f)]
print(file_list)
Output:
['1', '2']
如果您想使用 os.scandir() 忽略隐藏文件夹,只需检查文件夹名称是否以点 ('.') 开头。以下是您可以如何调整代码来做到这一点:
import os
my_path = 'C:/'
for item in os.scandir(my_path):
if item.is_dir() and not item.name.startswith('.'):
print(item.path)
现在它只会打印未隐藏的文件夹路径。希望这有帮助!