【发布时间】:2016-07-12 03:25:19
【问题描述】:
我正在尝试对目录中的所有 WAV 文件运行 ffmpeg 以将它们转换为 mp3。当我在我的 Fedora Linux 机器上从命令行运行此命令时,它运行良好:
/usr/bin/ffmpeg -i "Name With Spaces.wav" Name_With_Spaces.mp3
其中Name With Spaces.wav 是当前目录中的一个文件。但是,在同一目录下运行的 Python 3.2:
import os
files = os.listdir()
os.execl('/usr/bin/ffmpeg', '-i \"' + files[0] + '\"', files[0][:-4].replace(' ', '_') + '.mp3')
给我错误(来自ffmpeg):必须指定至少一个输入文件。我不明白为什么这不起作用,因为'-i \"' + files[0] + '\"' 的计算结果为-i "Name With Spaces.wav",而files[0][:-4].replace(' ', '_') + '.mp3' 的计算结果为Name_With_Spaces.mp3。
我尝试转义空格,使用不同的引号,使用完整路径(如/home/.../music/Name\ With\ Spaces.wav),实际上用真实文本替换参数,但没有任何效果。我怎样才能让它工作?
【问题讨论】:
-
它是否适用于没有空格的文件名?
-
@Fishstick 不,它没有
标签: python python-3.x ffmpeg