.ends在循环中丢失文件扩展名

时间:2013-06-26 10:25:45

标签: python

我正在从配置文件中加载扩展名,就像这样;

search_ext = tuple((config.get("Miscellaneous", "media") + config.get("Miscellaneous", "meta") + config.get("Miscellaneous", "other")).split('|'))

在配置文件中,扩展列出如下;

  

media = .mkv | .avi | .divx | .xvid | .mov | .wmv | .mp4 | .mpg | .mpeg | .vob | .iso

     

meta = .nfo | .sub | .srt | .jpg | .jpeg | .gif | .txt

     

other = .exe | .pdf

然后使用os.walk循环遍历文件列表,使用.endswith

进行搜索
if fileName.endswith(search_ext):

但它似乎总是错过最后一次扩展,例如在这种情况下它将是.pdf。通过添加像.unknown这样的虚假扩展来轻松绕过。但为什么会这样呢?它与我的元组有什么关系吗?

1 个答案:

答案 0 :(得分:2)

剥离配置值周围的空间。 (根据config

,这可能不是问题

media的最后一个元素和meta的第一个元素在没有分隔符的情况下连接在一起。 (metaother

相同
search_ext = (
     config.get("Miscellaneous", "media").strip() + '|' +
     config.get("Miscellaneous", "meta").strip() + '|' +
     config.get("Miscellaneous", "other").strip()
).split('|')