我正在开发某个程序,我需要根据文件的扩展名做不同的事情。我可以只用这个吗?
if m == *.mp3
...
elif m == *.flac
...
原文由 wkoomson 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在开发某个程序,我需要根据文件的扩展名做不同的事情。我可以只用这个吗?
if m == *.mp3
...
elif m == *.flac
...
原文由 wkoomson 发布,翻译遵循 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 许可协议
2 回答5k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
4 回答936 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
假设
m
是一个字符串,你可以使用endswith
:不区分大小写,并消除潜在的大型 else-if 链: