(在python 3.6.0上运行)
Usage: prog.py {caesar | vigenere} [key]
parser = argparse.ArgumentParser()
subp = parser.add_subparsers()
caesar = subp.add_parser("caesar", aliases=["c"], allow_abbrev=True)
args = parser.parse_args()
$ python prog.py caes 123
prog.py: error: invalid choice: 'caes' (choose from 'caesar', 'c')
Run Code Online (Sandbox Code Playgroud)
为什么subparser缩写即使带有 也无效allow_abbrev=True?
argparse基本上,在接受缩写subparsers名称/别名方面存在问题。
这是代码:
Usage: prog.py [caesar] [key]
import sys, argparse
def main(argv):
parser = argparse.ArgumentParser
(description="runs text through X cipher")
subp = parser.add_subparsers\
(help="sub-command help")
#<ArgumentParser object>
caesar = subp.add_parser\
("caesar", aliases=["c"], allow_abbrev=True) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 ffmpeg 的内置x265库.VOB通过h.265编解码器处理文件。
我从 ffmpeg 文档中了解到:
-c:v libx265告诉 ffmpeg 将h.265编解码器用于视频流
-x265-params将选项传递给x265编码器而不是ffmpeg
但是每当尝试运行该命令时,ffmpeg 似乎都无法识别/将选项传递给 x265。
它给出了错误
Unrecognized option '-y4m'.
Error splitting the argument list: Option not found
为什么是这样?
这是命令(编辑间距):
C:\ffmpeg (20170123-e371f03-win64-static)\bin>
ffmpeg -i concat:'input1.VOB'\'input.VOB'
-map 0:v -map 0:a -r 24000/1001 -f yuv4mpegpipe
-c:v libx265 -x265-params
--y4m --fps 24000/1001 -p veryslow --open-gop --bframes 16
--b-p yramid --bitrate 2500 --rect --amp --aq-mode 3 --no-sao --qcomp 0.75
--no-strong -intra-smoothing --psy-rd 1.6 …Run Code Online (Sandbox Code Playgroud)