您可以直接使用列表parse_args()
args = parser.parse_args(["arg1", "arg2", "arg3"])
或者你可以使用你的线路
command = "arg1 arg2 arg3"
args = parser.parse_args(command.split(" "))
你可以随时把它放进去sys.argv
and parser
应该使用它
import sys
sys.argv = ["script", "arg1", "arg2", "arg3"]
如果你愿意的话它会很有用append()
从命令行获得的值的一些选项
sys.argv.append("--debug")
如果你有更复杂的command
带引号的字符串,例如
'arg1 "Hello World" arg3'
那么你可以使用标准模块shlex https://docs.python.org/3/library/shlex.html将其正确拆分为三个参数
import shlex
shlex.split('arg1 "Hello world" arg3')
['arg1', 'Hello World', 'arg3'].
Normal command.split(" ")
会错误地给出四个参数
['arg1', '"Hello', 'World"', 'arg3']