获取目录内所有 mp3 文件的持续时间。
Getting duration of all mp3 files inside catalog.
首先:我完全是 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 文件的持续时间并打印出来吗?
你能试试这个吗?
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", ""))
连我也想要类似的问题。在查看了各种网站后,我得到了答案。请参阅下面的代码。如果你使用 windows OS 然后记得在你的路径目录前写一个 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/
首先:我完全是 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 文件的持续时间并打印出来吗?
你能试试这个吗?
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", ""))
连我也想要类似的问题。在查看了各种网站后,我得到了答案。请参阅下面的代码。如果你使用 windows OS 然后记得在你的路径目录前写一个 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/