【发布时间】:2019-10-25 03:34:57
【问题描述】:
我在 python 中编写了一个函数,它接受2 lists(具有相同的长度)并返回另一个包含 2 个元素的列表。该函数运行良好,但我试图在command line 中运行python 脚本。为此,我想在 python 中使用argparse 模块。我使用以下命令在 python3 中编写了以下脚本:
python3 text.py a b results
脚本应采用 3 个参数,2 个列表作为输入,1 个列表作为输出。这是脚本:
def fun(a, b):
a_is_greater = 0
b_is_greater = 0
for element_a, element_b in zip(a, b):
if element_a > element_b:
a_is_greater += 1
elif element_a < element_b:
b_is_greater += 1
return [a_is_greater, b_is_greater]
def main():
import argparse
ap = argparse.ArgumentParser(description="")
ap.add_argument('--list-type', type=list)
ap.add_argument('--list-type', type=list)
ap.add_argument('-o', '--outlist', required=True)
args = ap.parse_args()
results = fun(a, b)
return results
if __name__ == "__main__":
from signal import signal, SIGPIPE, SIG_DFL
signal(SIGPIPE, SIG_DFL)
try:
main()
except IOError as e:
if e.errno != 32:
raise
except KeyboardInterrupt as e:
pass
你知道怎么解决吗?我试过这两个列表:a = [4, 5, 2] 和b = [3, 5, 4]。脚本中的 fun 函数非常适合这 2 个输入。
【问题讨论】:
标签: python-3.x command-line argparse