2017-08-11 3 views
0

J'ai une liste d'extensions de fichiers et je dois écrire si les conditions. Quelque chose commeUtilisation de endswith avec insensibilité à la casse en python

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]): 

Je me suis rendu compte que finswith est sensible à la casse. Comment je pourrais traiter, par exemple, ".xml" et ".XML" comme les mêmes extensions?

Répondre

6

Appelez simplement lower pour faire la chaîne en minuscules avant d'appeler 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

ça alors. J'essayais des trucs extrêmes, merci beaucoup – edyvedy13