Utiliser endswith avec plusieurs extensions
J'essaie de détecter les fichiers avec une liste d'extensions.
ext = [".3g2", ".3gp", ".asf", ".asx", ".avi", ".flv",
".m2ts", ".mkv", ".mov", ".mp4", ".mpg", ".mpeg",
".rm", ".swf", ".vob", ".wmv"]
if file.endswith(ext): # how to use the list ?
command 1
elif file.endswith(""): # it should be a folder
command 2
elif file.endswith(".other"): # not a video, not a folder
command 3
24
demandé sur
Trilarion
2014-04-02 17:18:56
2 réponses
Utilisez un tuple pour cela.
>>> ext = [".3g2", ".3gp", ".asf", ".asx", ".avi", ".flv", \
".m2ts", ".mkv", ".mov", ".mp4", ".mpg", ".mpeg", \
".rm", ".swf", ".vob", ".wmv"]
>>> ".wmv".endswith(tuple(ext))
True
>>> ".rand".endswith(tuple(ext))
False
Au lieu de convertir à chaque fois, convertissez-le simplement en tuple une fois.
60
répondu
Sukrit Kalra
2014-04-02 13:20:40
Tu n'aurais pas pu en faire un tuple en premier lieu? Pourquoi avez-vous à faire:
>>> ".wmv".endswith(tuple(ext))
Ne pourriez-vous pas simplement faire:
>>> ext = (".3g2", ".3gp", ".asf", ".asx", ".avi", ".flv", \
".m2ts", ".mkv", ".mov", ".mp4", ".mpg", ".mpeg", \
".rm", ".swf", ".vob", ".wmv")
6
répondu
Patrick
2016-12-02 15:00:41