首先:我是Python的初学者。
我只需要自动将mp3文件添加到我的商店即可。所有这些都在一个目录中。文件名将是产品名称,文件持续时间将是该产品的说明。
我编写了一个简单的Python脚本,该脚本从目录中读取所有mp3文件名,然后将它们打印出来。 看起来像这样:
import os
filenames = next(os.walk("./", topdown=True))[2]
i = 0
while i < len(filenames):
print(filenames[i].replace(".mp3", ""))
i += 1
它很好用,但是现在我需要从同一目录中读取所有* .mp3文件的持续时间。
我发现了一个名为Mutagen的库。 我可以使用此库轻松获取一个文件的持续时间,但无法从整个目录中读取文件的持续时间。
读取单个mp3文件长度的代码:
from mutagen.mp3 import MP3
audio = MP3("example.mp3")
print audio.info.length
您对如何读取一个目录中所有* .mp3文件的持续时间并打印出来有任何想法吗?
答案 0 :(得分:1)
你可以试试吗?
import os
from mutagen.mp3 import MP3
filenames = next(os.walk("./", topdown=True))[2]
for filename in filenames:
audio = MP3(filename)
print audio.info.length
print(filename.replace(".mp3", ""))
答案 1 :(得分:0)
即使我想要一个类似的问题。在查看了各个站点后,我得到了答案。请参阅下面的代码。如果您使用的是Windows操作系统,请记住在路径目录前写一个 r 。
import os
from mutagen.mp3 import MP3
os.chdir(r"C:\Users\*#*")// path of the directory
print("Directory changed")
obj = os.scandir()
def convert(seconds):
hours = seconds // 3600
seconds %= 3600
mins = seconds // 60
seconds %= 60
return(hours, mins, seconds)
for entry in obj :
if entry.is_dir() or entry.is_file():
audio = MP3(entry)
hours, mins, seconds = convert(audio.info.length)
print(str(int(hours)) + ":" + str(int(mins)) + ":" + str(int(seconds)))
print(entry.name) // for audio file name
obj.close()
我使用以下链接作为参考。
https://www.codespeedy.com/find-the-duration-of-an-mp3-file-in-python-mutagen/