Python读取特定文件名文件遇空列表问题排查
问题排查与解决办法
以下是导致你的glob.glob返回空列表的可能原因及对应解决方式:
通配符匹配逻辑错误
你写的*bitrate.txt只会匹配文件名以bitrate结尾的.txt文件,如果目标文件是xxx_bitrate_yyy.txt这种中间包含bitrate的格式,这个通配符就匹配不到。把通配符改成*bitrate*.txt,就能匹配文件名任意位置包含bitrate的.txt文件。路径格式问题
Windows系统下虽支持用/作为路径分隔符,但偶尔会因字符串转义或系统识别问题导致路径无效。可以试试两种修改方式:- 使用原始字符串,在路径前加
r:a=glob.glob(r"E:/data_from_twitch/Archive/qs_kk_v1_results_full_160p/asmr_1_0000/*bitrate*.txt") - 换成Windows标准的双反斜杠分隔符:
a=glob.glob("E:\\data_from_twitch\\Archive\\qs_kk_v1_results_full_160p\\asmr_1_0000\\*bitrate*.txt")
- 使用原始字符串,在路径前加
路径拼写或大小写不符
仔细核对路径中的每一段文件夹名称,比如qs_kk_v1_results_full_160p、asmr_1_0000是否拼写正确,大小写是否和实际文件夹一致(虽Windows默认不区分大小写,但个别场景下会存在识别问题)。文件权限限制
如果当前Python进程没有访问目标文件夹的权限,也会导致glob无法读取到文件。检查该文件夹的权限设置,确保当前用户拥有读取权限。文件扩展名匹配问题
确认目标文件确实是.txt后缀,而非.TXT或其他类似扩展名。部分环境下glob会严格匹配大小写,可尝试添加case_sensitive=False参数:a=glob.glob("E:/data_from_twitch/Archive/qs_kk_v1_results_full_160p/asmr_1_0000/*bitrate*.txt", case_sensitive=False)
内容的提问来源于stack exchange,提问作者david
相关产品推荐
相关产品推荐

