每当我使用时parser.parse_args(),内核就会崩溃。例如:
import argparse
import numpy as np
parser = argparse.ArgumentParser()
parser.add_argument("--return_counts", type=bool, default=True)
opt = parser.parse_args()
arr = np.random.randint(0, 10, 100)
Run Code Online (Sandbox Code Playgroud)
它给出了这个错误:
用法:pydevconsole.py [-h] [--return_counts RETURN_COUNTS]
pydevconsole.py:错误:无法识别的参数:--mode=client --port=52085
但是,如果我使用parser.parse_known_args(),它会起作用。
import argparse
import numpy as np
parser = argparse.ArgumentParser()
parser.add_argument("--return_counts", type=bool, default=True)
opt, unknown = parser.parse_known_args()
arr = np.random.randint(0, 10, 100)
Run Code Online (Sandbox Code Playgroud)
它有效,并opt给出了这个:
print(opt)
Out[3]: Namespace(return_counts=True)
Run Code Online (Sandbox Code Playgroud)
并unknown给出了这个:
Out[4]: ['--mode=client', '--port=52162']
Run Code Online (Sandbox Code Playgroud)
有人可以解释这背后的巫术吗?
您似乎没有为命令行提供正确的参数。您需要向解析器添加更多参数。
import argparse
import numpy as np
parser = argparse.ArgumentParser()
parser.add_argument("--return_counts", type=bool, default=True)
parser.add_argument("--mode", default='client')
parser.add_argument("--port", default=52162)
args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)
现在您可以python3 pydevconsole.py --return_counts True --mode client --port 52162在命令行中使用,您将看到:
print(args.return_counts) # True
print(args.mode) # client
print(args.port) # 52162
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2228 次 |
| 最近记录: |