我在 python 中编写了一个函数,它接受2 lists
(具有相同的长度)并返回另一个包含 2 个元素的列表。该函数运行良好,但我试图在command line
. 为此,我想argparse
在 python 中使用模块。我使用以下命令在 python3 中编写了以下脚本:
python3 text.py a b results
该脚本应将 3 个参数 2 个列表作为输入,一个列表作为输出。这是脚本:
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 函数非常适合这两个输入。
这是否更好?
python3 text.py --list1 [4,5,2] --list2 [3,5,4] -o result # [1, 1]
def main():
import argparse
ap = argparse.ArgumentParser(description="")
ap.add_argument('--list1', type=list)
ap.add_argument('--list2', type=list)
ap.add_argument('-o', '--outlist', required=True)
args = ap.parse_args()
results = fun(args.list1, args.list2)
print(results)
return results
代码 :
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('--list1', type=list)
ap.add_argument('--list2', type=list)
ap.add_argument('-o', '--outlist', required=True)
args = ap.parse_args()
results = fun(args.list1, args.list2)
print(results)
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句