我想写一个python脚本(是不是Bash),它将使用flac文件并使用oggenc对它们进行编码,然后在成功编码时删除flac文件。Python oggenc脚本
到目前为止,我有这样的:
import os, sys
import fnmatch
command = 'oggenc -q7 *.flac'
def main():
for root, dirs, files in os.walk('/home/wagnerf/test'):
for name in files:
if fnmatch.fnmatch(name, '*.flac'):
我有种想用
os.system("bash -c %s" % command)
后,如果但就不行,说的
ERROR: No input files specified. Use -h for help.
我猜我必须在我的命令中使用该名称?
编辑 我的文件结构如下somethibg这样的:
-- test
-- test1
-- test1.flac
-- test2.flac
-- test2
-- test3.flac
-- test1.flac
而且我希望这些FLAC文件转换在同一个目录下OGG,基本上我想自动
cd /somedir/
oggenc -q7 *.flac
cd ..
cd /someotherdir/
oggenc -q7 *.flac
这样我就不必一直输入子目录!
答:
@larsmanns非常感谢你,只是不得不做出一些调整:
from fnmatch import fnmatch
import os, sys
import subprocess
def main():
for root, dirs, files in os.walk('/home/wagnerf/test'):
flacs = [f for f in files if fnmatch(f, '*.flac')]
if flacs:
for file in flacs:
cmd = 'oggenc', '-q7', '%s' % file
subprocess.check_call(cmd, cwd=root)
FLACS返回一个列表,我们需要利用每oggenc的文件,以便为每个元组做... 无论如何,再次感谢其余的很容易!
BTW
我完成了脚本,你可以在这里找到它:musico
为什么不通过'os.system(“oggenc -q7%s”%os.path.join(root,name))'运行oggenc?它将与你的默认shell一起运行,通常是bash。 –
@dr见上文编辑 –
@ wagner-felix:''%s'%file'与'file'完全相同。编辑我的答案,以一种更简洁的方式反映你的变化;我不知道'oggenc'工具,所以我只是假定它可以处理每个命令的多个文件。 –