Python TypeError:execv()arg 2必须仅包含使用docopt的字符串
我在传递参数时遇到以下错误。有人能帮我找出这个问题吗?我在终端中将指令传递给我的函数,如下所示:Python TypeError:execv()arg 2必须仅包含使用docopt的字符串,python,subprocess,docopt,Python,Subprocess,Docopt,我在传递参数时遇到以下错误。有人能帮我找出这个问题吗?我在终端中将指令传递给我的函数,如下所示: python makeQuicktime.py -i /Volumes/P003A/TM_Cloud/Nagrania/Karta_04/XDROOT/Clip/D004C010_141026MM.MXF -f 25 -c prores 这是main函数-正如您所看到的,I'v试图传递参数-编解码器为字符串: if __name__ == "__main__": args = docopt
python makeQuicktime.py -i /Volumes/P003A/TM_Cloud/Nagrania/Karta_04/XDROOT/Clip/D004C010_141026MM.MXF -f 25 -c prores
这是main函数-正如您所看到的,I'v试图传递参数-编解码器为字符串:
if __name__ == "__main__":
args = docopt(__doc__, version='makeQuicktime 0.0.1')
print args
cmd_args = ""
codec=str(args['--codec'])
makeQuicktime( args['--input'], fps=args['--fps'], codec=str(args['--codec']) )
os._exit(0)
此代码正在运行的其他函数部分(makeProRes,第110行是输出变量):
错误:
Traceback (most recent call last):
File "makeQuicktime.py", line 123, in <module>
makeQuicktime( args['--input'], fps=args['--fps'], codec=str(args['--codec']) )
File "makeQuicktime.py", line 53, in makeQuicktime
makeProRes(1, input, fps, output)
File "makeQuicktime.py", line 110, in makeProRes
output
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 524, in call
return Popen(*popenargs, **kwargs).wait()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1308, in _execute_child
raise child_exception
TypeError: execv() arg 2 must contain only strings
回溯(最近一次呼叫最后一次):
文件“makeQuicktime.py”,第123行,在
makeQuicktime(args['--input'],fps=args['--fps'],codec=str(args['--codec']))
makeQuicktime中第53行的文件“makeQuicktime.py”
makeProRes(1,输入,fps,输出)
makeProRes中第110行的文件“makeQuicktime.py”
输出
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,第524行,在调用中
返回Popen(*popenargs,**kwargs)。等待()
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,第711行,在__
错误读取,错误写入)
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,第1308行,在执行子进程中
引发子对象异常
TypeError:execv()arg 2只能包含字符串
开始帧、fps
或cpu
中的一个是数字而不是字符串。当你找到哪个时,把它括在str()
中进行转换。str()
围绕args['--codec']
是不必要的,除非docopt
将字符串参数转换成其他类型(据我所知不是这样)。此外(不太可能但仍然是):输入
,输出
变量。
Traceback (most recent call last):
File "makeQuicktime.py", line 123, in <module>
makeQuicktime( args['--input'], fps=args['--fps'], codec=str(args['--codec']) )
File "makeQuicktime.py", line 53, in makeQuicktime
makeProRes(1, input, fps, output)
File "makeQuicktime.py", line 110, in makeProRes
output
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 524, in call
return Popen(*popenargs, **kwargs).wait()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1308, in _execute_child
raise child_exception
TypeError: execv() arg 2 must contain only strings