2024-04-26 02:43:30 发布
网友
我想使用命令行传递一个列表作为参数,例如:
$python example.py [1,2,3] [4,5,6]
我希望第一个列表[1,2,3]是第一个\u列表,[4,5,6]是第二个\u列表。我该怎么做?你知道吗
[可能是shell元字符。您可以将[]作为@Reut Sharabani suggested删除:
[
[]
$ python example.py 1,2,3 4,5,6
解析这种格式很容易:
#!/usr/bin/env python3 import sys def arg2int_list(arg): """Convert command-line argument into a list of integers. >>> arg2int_list("1,2,3") [1, 2, 3] """ return list(map(int, arg.split(','))) print(*map(arg2int_list, sys.argv[1:])) # -> [1, 2, 3] [4, 5, 6]
import ast import sys for arg in sys.argv: try: print sum(ast.literal_eval(arg)) except: pass
在命令行中:
>>= python passListAsCommand.py "[1,2,3]" 6
小心不要把任何恶意的东西传递给literal_eval。你知道吗
literal_eval
import sys def command_list(): l = [] if len(sys.argv) > 1: for i in sys.argv[1:]: l.append(i) return l print(command_list())
在命令行中
$ python3 test105.py 1,2,3 4,5,6 ['1,2,3', '4,5,6']
[
可能是shell元字符。您可以将[]
作为@Reut Sharabani suggested删除:解析这种格式很容易:
在命令行中:
小心不要把任何恶意的东西传递给
literal_eval
。你知道吗在命令行中
相关问题 更多 >
编程相关推荐