编写简单的Python脚本将特定文件夹中的所有.wav文件转换为.mp3格式利用lame

1 投票
2 回答
3891 浏览
提问于 2025-04-16 23:02

我想写一个简单的脚本,把我文件夹里几十个 .wav 文件转换成 v0 的 mp3 格式。这个脚本不需要太复杂,只要能完成这个任务,同时帮我学一点 Python 的知识就行;)

我了解到我需要用到类似“from subprocess import call”这样的代码来调用“lame”这个工具,但我不知道怎么写剩下的部分。我之前写过 bash 脚本来做这个,但在 Windows 上用处不大。

我对基本的 Python 编程有一些了解。

2 个回答

-1

这是我目前想到的内容

#!/usr/bin/env python
import os

lamedir = 'lame'
searchdir = "/var/test"
name = []

for f in os.listdir(searchdir):
    name.append(f)

for files in name:
    iswav = files.find('.wav')
    #print files, iswav
    if(iswav >0):
        print lamedir + ' -h -V 6 ' + searchdir + files + ' ' + searchdir + files[:iswav]+'.mp3'
        os.system(lamedir + ' -h -V 6 ' + searchdir + files + " " + searchdir +  files[:iswav]+".mp3")
2

这里有一个在Ubuntu Linux上能用的示例。如果你是在Windows系统上,就需要把斜杠的方向改一下。

import os
import os.path
import sys
from subprocess import call

def main():
    path = '/path/to/directory/'
    filenames = [
        filename
        for filename
        in os.listdir(path)
        if filename.endswith('.wav')
        ]
    for filename in filenames:
        call(['lame', '-V0',
              os.path.join(path, filename),
              os.path.join(path, '%s.mp3' % filename[:-4])
              ])
    return 0

if __name__ == '__main__':
    status = main()
    sys.exit(status)

撰写回答