这个 python 3 脚本有什么问题

What is the problem with this python 3 script

我做了一个压缩视频的脚本

import ffmpeg
import subprocess

result = subprocess.run("C:\ffmpeg\bin\ffmpeg.exe"['ffmpeg -i output.mp4 -b 800k output.mp4'])
print(result)

当我运行这个错误会像这样出现-

    result = subprocess.run("C:\ffmpeg\bin\ffmpeg.exe"['ffmpeg -i output.mp4 -b 800k output.mp4'])
TypeError: string indices must be integers

解决方法是什么?

好吧,看看你试图通过的论点。我插入了一个换行符以帮助阅读:

"C:\ffmpeg\bin\ffmpeg.exe"
    ['ffmpeg -i output.mp4 -b 800k output.mp4']

第一行是字符串。您在后面加上了括号。接下来必须是字符串的下标。你认为你在做什么?

这似乎格式不正确:

subprocess.run("C:\ffmpeg\bin\ffmpeg.exe"['ffmpeg -i output.mp4 -b 800k output.mp4'])

我很确定你只是想要这个:

result = subprocess.run(["C:\ffmpeg\bin\ffmpeg.exe", "-i", "output.mp4", "-b", "800k",  "output.mp4"])

或者也许只是这样:

result = subprocess.run("C:\ffmpeg\bin\ffmpeg.exe -i output.mp4 -b 800k output.mp4")

此外,不确定输入文件和输出文件是否是个好主意,output.mp4要相同。

"C:\ffmpeg\bin\ffmpeg.exe"['ffmpeg -i output.mp4 -b 800k output.mp4'] 正如@Prune 指出的那样,错误发生在您使用另一个字符串索引字符串时,这是不正确的。将参数传递给 subprocess.run 的正确方法是

result = subprocess.run("[C:\ffmpeg\bin\ffmpeg.exe", 'ffmpeg -i output.mp4 -b 800k output.mp4']) 如果要添加更多参数,可以使用位置参数。