- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想编写一个 python 脚本(是的,不是 Bash),它将使用 flac 文件并使用 oggenc 对其进行编码,然后在成功编码后删除 flac 文件。
到目前为止我有这个:
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)
在 if 之后但那行不通,说是
ERROR: No input files specified. Use -h for help.
我想我必须在我的命令中使用名称吗?
编辑我的文件结构看起来像这样:
-- 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,所以对于每个元组做 ...无论如何,再次感谢,剩下的就简单了!
顺便说一下
我完成了脚本,您可以在这里找到它:musico
最佳答案
使用 subprocess
调用外部命令的模块,提供更详细的控制:
from fnmatch import fnmatch
import os
import subprocess
def main():
for root, dirs, files in os.walk('/home/wagnerf/test'):
flacs = [f for f in files if fnmatch(f, '*.flac')]
for f in flacs:
cmd = ['oggenc', '-q7', f]
subprocess.check_call(cmd, cwd=root)
cwd
关键字参数在执行命令之前更改为指定的目录。通配(文件名模式匹配)已由 fnmatch
完成,因此需要在两者之间调用 shell。
您可以使用os.remove
删除文件;我还没有把它放在例子中。此外,上述代码段未经测试。
关于Python oggenc 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7900178/
我想编写一个 python 脚本(是的,不是 Bash),它将使用 flac 文件并使用 oggenc 对其进行编码,然后在成功编码后删除 flac 文件。 到目前为止我有这个: import os,
我正在尝试以 -q 6/192k 对 ogg 文件进行编码。 ffmpeg 似乎没有在听我的命令 ffmpeg -i blah -acodec vorbis -ab 192k -y out.ogg 所
我有一个很奇怪的问题。我想使用音频标签在 Firefox 上播放 ogg 文件。但是当我尝试运行此音频时, Firebug 报告此错误: Media resource http://127.0.0.1
我是一名优秀的程序员,十分优秀!