如何检查文件的扩展名?

新手上路,请多包涵

我正在开发某个程序,我需要根据文件的扩展名做不同的事情。我可以只用这个吗?

 if m == *.mp3
   ...
elif m == *.flac
   ...

原文由 wkoomson 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 279
2 个回答

假设 m 是一个字符串,你可以使用 endswith

 if m.endswith('.mp3'):
...
elif m.endswith('.flac'):
...

不区分大小写,并消除潜在的大型 else-if 链:

 m.lower().endswith(('.png', '.jpg', '.jpeg'))

原文由 lafras 发布,翻译遵循 CC BY-SA 4.0 许可协议

os.path 提供了许多用于操作路径/文件名的函数。 ( 文档

os.path.splitext 采用路径并从其末尾拆分文件扩展名。

 import os

filepaths = ["/folder/soundfile.mp3", "folder1/folder/soundfile.flac"]

for fp in filepaths:
    # Split the extension from the path and normalise it to lowercase.
    ext = os.path.splitext(fp)[-1].lower()

    # Now we can simply use == to check for equality, no need for wildcards.
    if ext == ".mp3":
        print fp, "is an mp3!"
    elif ext == ".flac":
        print fp, "is a flac file!"
    else:
        print fp, "is an unknown file format."

给出:

/folder/soundfile.mp3 是一个 mp3!
folder1/folder/soundfile.flac 是一个 flac 文件!

原文由 Acorn 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题