在命令行中将复杂对象传递给python脚本

在命令行中将复杂对象传递给python脚本,python,command-line,arguments,Python,Command Line,Arguments,我是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_

我是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脚本的程序。谢谢大家

您可以使用:

通信和提示:

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

但不推荐您要执行的操作()。您应该避免这种情况,而是将数据存储在文件中(例如使用)。

您可以尝试使用pickle模块从字符串序列化\反序列化到\中。
查找和

对不起,我们这里不做紧急事务。对于时间紧迫的问题,请聘请顾问。
os.system
非常糟糕。您唯一的选择是将其保存到文件中。另一方面:使用
\uux
是为了破坏名称,我很确定在
类中不需要这样做。如果您有getter和setter函数/属性,那么您可能需要一个私有变量
\ux
,但如果os.system真的很糟糕,那么只需将其保留为
self.x
segfolt>>如何使用?请参阅本文:谢谢。但是如何使用exec呢?我对我的帖子做了一些小改动。有比
eval
更好的选择。例如,使用JSON。
$ my_script.py {1:2}
$ {1: 2}