python 脚本中的 os.system 错误

Error with os.system in python script

我正在创建一个 python 脚本,它将使用 ffmpeg 和 unoconv 转换文件。但是,当我 运行 程序时,程序并没有获取转换后的文件,而是只显示文本:

sh: 1: unoconv -f: not found

这是我的程序的脚本:

    path = raw_input("Please drag and drop the directory in which the file is stored into the terminal:")
    os.chdir(path[1:-2])
    filename = raw_input("Please enter the name of the file you would like to convert, including the file-type. e.g. test.txt, however please do make sure that the file-name does not have any spaces:")
    Fileextension = raw_input("What filetype would you like the program to convert your file to. E.g. .mp3: ")
    body, ext = os.path.splitext("filename")
    os.system("'ffmpeg -i ' + filename + body + Fileextension ")

关于为什么会发生这种情况有什么想法吗?

看看你的命令:

os.system("'ffmpeg -i ' + filename + body + Fileextension ")

您尝试执行这个文字字符串。

尝试:

os.system('ffmpeg -i ' + filename + body + Fileextension)

此外,建议使用subprocess而不是os.system

您应该使用 subprocess 模块,特别是 subprocess.check_call 传递参数列表:

from subprocess import check_call
check_call(["ffmpeg" ,"-i",filename + body + Fileextension])

任何非零退出代码都会引发 CalledProcessError