如何使用Python的os.listdir()排除Windows文件夹中的desktop.ini文件
问题原因说明
desktop.ini是Windows系统默认生成的配置文件,用于存储当前文件夹的视图、图标等个性化设置,属于系统隐藏文件。os.listdir() 会直接读取目录下的所有真实存在的文件条目,不受资源管理器的「隐藏文件不显示」设置影响,和目录被其他程序占用无关,之前未遇到大概率是此前该目录没有生成过desktop.ini文件。
实现方案
你可以通过两种方案过滤不需要的文件:
方案1:仅排除desktop.ini文件
直接对返回结果做名称过滤即可,因为Windows文件名不区分大小写,建议统一转小写匹配避免遗漏:import os files = [f for f in os.listdir() if f.lower() != "desktop.ini"]方案2:排除所有系统/隐藏文件(更通用)
如果希望过滤掉所有隐藏文件、系统文件(不止desktop.ini),可以通过Windows文件属性判断实现:import os # 定义Windows文件属性常量 FILE_ATTRIBUTE_HIDDEN = 0x2 FILE_ATTRIBUTE_SYSTEM = 0x4 filtered_list = [] for filename in os.listdir(): file_attr = os.stat(filename).st_file_attributes # 跳过隐藏文件和系统文件 if (file_attr & FILE_ATTRIBUTE_HIDDEN) or (file_attr & FILE_ATTRIBUTE_SYSTEM): continue filtered_list.append(filename)
内容的提问来源于stack exchange,提问作者skwolvie
相关产品推荐
相关产品推荐

