这个 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'])
如果要添加更多参数,可以使用位置参数。
我做了一个压缩视频的脚本
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'])
如果要添加更多参数,可以使用位置参数。