0

我是 Python 编程的初学者,我想使用命令行 (cmd) 将复杂对象(Python 字典或类对象)作为参数传递给 Python 脚本。我看到sys.argv只获取字符串参数。

这是我想要的一个例子:

class point(object):
     def __init__(self,x,y):
         self.__x=x
         self.__y=y
p=point(4,8)
import os
os.system('""xxxxxx.exe" "-s" "../create_scenario.py" "'+ p +'""')

xxxxxx.exe 是一个接受运行带有 -s 选项的 python 脚本的程序。谢谢大家!!!

4

2 回答 2

1

您可以尝试使用 pickle 模块对字符串进行序列化\反序列化到\从字符串。寻找转储装载

于 2013-04-19T10:49:46.727 回答
0

你可以使用eval

my_dict = eval(sys.argv[1])
print(my_dict)

命令提示:

$ my_script.py {1:2}
$ {1: 2}

但是不建议您执行此操作(请参阅此帖子)。您应该避免这种情况,而是将数据存储在文件中(例如使用JSON )。

于 2013-04-18T12:00:36.620 回答