web-dev-qa-db-ja.com

複数の拡張子を持つエンドウィズを使用する

拡張子のリストを持つファイルを検出しようとしています。

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
28
Guillaume

タプルを使用します。

>>> 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

毎回変換するのではなく、一度タプルに変換するだけです。

70
Sukrit Kalra

そもそも、タプルにしただけではありませんか?なぜあなたはする必要があります:

>>> ".wmv".endswith(Tuple(ext))

できませんでした:

>>> ext = (".3g2", ".3gp", ".asf", ".asx", ".avi", ".flv", \
                        ".m2ts", ".mkv", ".mov", ".mp4", ".mpg", ".mpeg", \
                        ".rm", ".swf", ".vob", ".wmv")
6
Patrick