2017-08-11 172 views
0

我有一個文件擴展名列表,我必須寫條件。類似於在python中使用endswith與大小寫敏感

ext = (".dae", ".xml", ".blend", ".bvh", ".3ds", ".ase", 
      ".obj", ".ply", ".dxf", ".ifc", ".nff", ".smd", 
      ".vta", ".mdl", ".md2", ".md3" 
      ".pk3", ".mdc", ".x" 
      ".q3o", ".q3s", ".raw" 
      ".ac", ".dxf", ".irrmesh" 
      ".irr", ".off", ".ter" 
      ".mdl", ".hmp", ".mesh.xml" 
      ".skeleton.xml", ".material", ".ms3dv" 
      ".lwo", ".lws", ".lxo" 
      ".csm", ".cob", ".scn" 
      ".xgl", ".zgl") 
for folder, subfolders, filename in os.walk(directory): 
    if any([filename.endswith(tuple(ext)) for filename in filenames]): 

我意識到endswith區分大小寫。我如何可以將「.xml」和「.XML」視爲相同的擴展名?

回答

6

直接讓lower調用endswith之前,在字符串小寫:

ext = (".dae", ".xml", ".blend", ".bvh", ".3ds", ".ase", 
      ".obj", ".ply", ".dxf", ".ifc", ".nff", ".smd", 
      ".vta", ".mdl", ".md2", ".md3" 
      ".pk3", ".mdc", ".x" 
      ".q3o", ".q3s", ".raw" 
      ".ac", ".dxf", ".irrmesh" 
      ".irr", ".off", ".ter" 
      ".mdl", ".hmp", ".mesh.xml" 
      ".skeleton.xml", ".material", ".ms3dv" 
      ".lwo", ".lws", ".lxo" 
      ".csm", ".cob", ".scn" 
      ".xgl", ".zgl") 
for folder, subfolders, filename in os.walk(directory): 
    if any([filename.lower().endswith(tuple(ext)) for filename in filenames]): 
+0

天哪。我正在嘗試一些極端的東西,非常感謝你 – edyvedy13