gpt4 book ai didi

python - 将列表作为命令行参数传递给 Python 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 21:10:32 27 4
gpt4 key购买 nike

当我想将列表作为参数时,我当前遇到一个问题。列表的格式如下:

[1,0,0,0]

我将在另一个 python 代码中执行类似的操作:

os.system('python main.py %s' %([list]))

当我在 main.py 中打印 sys.argv[1] 时,这不是我想要的:它打印

[1,

如何在 main.py 中使用此列表?

最佳答案

您面临的问题是,当您将列表作为命令行参数传递且不带引号时,Python 会将每个逗号分隔值作为单个参数读取。只需将字符串括起来,如下所示

main.py 文件:

import sys
import ast
print sys.argv[1]
print type(ast.literal_eval(sys.argv[1]))

传递非字符串作为参数:

>>> import os
>>> os.system("python main.py '%s'"%[1,2])
[1, 2]
<type 'list'>
0

将列表或字典作为变量传递:

>>> a = [1,2]
>>> os.system("python main.py '%s'"%a)
[1, 2]
<type 'list'>
0
>>> dic = {1:2,2:3}
>>> os.system("python main.py '%s'"%dic)
{1: 2, 2: 3}
<type 'dict'>
0


编辑:

替代解决方案:使用字符串格式

>>>a = [1,2]
>>> os.system("python main.py '{}'".format(a))
[1, 2]
<type 'list'>
0

希望这有帮助

关于python - 将列表作为命令行参数传递给 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55095173/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com