gpt4 book ai didi

Python:参数没有正确传递给命令

转载 作者:太空宇宙 更新时间:2023-11-03 13:46:23 29 4
gpt4 key购买 nike

几个小时以来,我一直在为这个问题挠头。

我正在尝试编写一个简单的脚本,使用 HandbrakeCLI 将 .AVI 格式的旧视频转换为 .mp4,但我无法让 Handbrake 注册正确的参数,我不断收到“缺少输出文件名。运行 C:/Program Files/Handbrake/HandbrakeCLI.exe --help for syntax.\r\n"错误。

这是我目前所拥有的

import glob
import os

import handbrake

hb = handbrake.HandbrakeEncode
mydir = "C:\\Path\\To\\MyVids\\"
os.chdir(mydir)

filesList = []

for files in glob.glob("*.avi"):
filesList.append(mydir + files)
print(mydir + files)
#this prints the correctly assembled path and file as expected

for files in filesList:
print("Encoding file: " + files)
hb(files)

hb函数是:

def HandbrakeEncode(filepath):
import subprocess
import os
from subprocess import Popen, PIPE
outputPath, fileExtension = os.path.splitext(filepath)
outputPath += ".mp4"

args = '-i ' + filepath + ' -o '+ outputPath


cmd = ['C:\\Program Files\\Handbrake\\HandbrakeCLI.exe', args]


p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
stdout, stderr = p.communicate()
print(stdout)

感谢您提供的任何帮助...

最佳答案

subprocess.Popen 期望命令被分成可转义的 block :

['foo', '-a', 'bar', '--baz']

你的命令应该是一个参数列表:

cmd = [
'C:\\Program Files\\Handbrake\\HandbrakeCLI.exe',
'-i', filepath,
'-o', outputPath
]

关于Python:参数没有正确传递给命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19623023/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com