Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从文本文件实例化一组对象?_Python - Fatal编程技术网

Python 如何从文本文件实例化一组对象?

Python 如何从文本文件实例化一组对象?,python,Python,我有一些日志文件,看起来像以下几行: <tickPrice tickerId=0, field=2, price=201.81, canAutoExecute=1> <tickSize tickerId=0, field=3, size=25> <tickSize tickerId=0, field=8, size=534349> <tickPrice tickerId=0, field=2, price=201.82, canAutoExecute=1

我有一些日志文件,看起来像以下几行:

<tickPrice tickerId=0, field=2, price=201.81, canAutoExecute=1>
<tickSize tickerId=0, field=3, size=25>
<tickSize tickerId=0, field=8, size=534349>
<tickPrice tickerId=0, field=2, price=201.82, canAutoExecute=1>

我不确定您希望如何在名称空间中动态创建对象,但以下内容将至少基于您的日志线动态创建对象:

听你的台词:

line = '<tickPrice tickerId=0, field=2, price=201.81, canAutoExecute=1>'
然后创建对象(名称、基本元组、属性字典):

证明它能像我们预期的那样工作:

print(tickPriceObject.field)
# 2

我不确定您希望如何在名称空间中动态创建对象,但以下内容将至少基于您的日志线动态创建对象:

听你的台词:

line = '<tickPrice tickerId=0, field=2, price=201.81, canAutoExecute=1>'
然后创建对象(名称、基本元组、属性字典):

证明它能像我们预期的那样工作:

print(tickPriceObject.field)
# 2

我不确定您希望如何在名称空间中动态创建对象,但以下内容将至少基于您的日志线动态创建对象:

听你的台词:

line = '<tickPrice tickerId=0, field=2, price=201.81, canAutoExecute=1>'
然后创建对象(名称、基本元组、属性字典):

证明它能像我们预期的那样工作:

print(tickPriceObject.field)
# 2

我不确定您希望如何在名称空间中动态创建对象,但以下内容将至少基于您的日志线动态创建对象:

听你的台词:

line = '<tickPrice tickerId=0, field=2, price=201.81, canAutoExecute=1>'
然后创建对象(名称、基本元组、属性字典):

证明它能像我们预期的那样工作:

print(tickPriceObject.field)
# 2

用正则表达式解决问题,但结果与tristan的优秀答案相同(并且窃取了他使用的
类型
构造函数,我将永远无法记住)

重新导入
类\u实例\u re=re.compile(r”“”
“”,re.X)
对象=[]
对于任何_文件中的行:
结果=类实例匹配(行)
classname=line.group('classname')
arguments=line.group('arguments')
new_obj=类型(类名,(对象,),
dict([s.split('='),用于参数中的s.split(',')]))
objects.append(新对象)

用正则表达式解决问题,但结果与tristan的优秀答案相同(并窃取了他使用的
类型
构造函数,我将永远无法记住)

重新导入
类\u实例\u re=re.compile(r”“”
“”,re.X)
对象=[]
对于任何_文件中的行:
结果=类实例匹配(行)
classname=line.group('classname')
arguments=line.group('arguments')
new_obj=类型(类名,(对象,),
dict([s.split('='),用于参数中的s.split(',')]))
objects.append(新对象)

用正则表达式解决问题,但结果与tristan的优秀答案相同(并窃取了他使用的
类型
构造函数,我将永远无法记住)

重新导入
类\u实例\u re=re.compile(r”“”
“”,re.X)
对象=[]
对于任何_文件中的行:
结果=类实例匹配(行)
classname=line.group('classname')
arguments=line.group('arguments')
new_obj=类型(类名,(对象,),
dict([s.split('='),用于参数中的s.split(',')]))
objects.append(新对象)

用正则表达式解决问题,但结果与tristan的优秀答案相同(并窃取了他使用的
类型
构造函数,我将永远无法记住)

重新导入
类\u实例\u re=re.compile(r”“”
“”,re.X)
对象=[]
对于任何_文件中的行:
结果=类实例匹配(行)
classname=line.group('classname')
arguments=line.group('arguments')
new_obj=类型(类名,(对象,),
dict([s.split('='),用于参数中的s.split(',')]))
objects.append(新对象)


这样的类会是什么样子?您是否在询问如何实例化已定义类的实例?或者如何根据需要为这些值定义动态类?无论哪种方式,您是否可以演示您解决问题的尝试,而不是使用(模糊的)规范的数据样本?我将定义这两个类。然后将它们存储在字典中,并以它们的名称作为键。在他们的构造函数中,对包装在其
kwargs
中的每个项目执行
setattr
。够清楚吗?;)可能不是已经定义的最佳路径类。这不是我正在努力解决的问题。我正试图找到最好的方法来获取包含“tickerId=0,field=2,price=201.81,canAutoExecute=1”的字符串,并定义每个命名变量的保留值。我忍不住觉得问题的根源在于您无法决定是记录消息还是序列化对象。使用标准库的JSON或pickle或cheese shop可能会让您的生活变得更加轻松。这样的类会是什么样子?您是否在问如何实例化已经定义的类的实例?或者如何根据需要为这些值定义动态类?无论哪种方式,您是否可以演示您解决问题的尝试,而不是使用(模糊的)规范的数据样本?我将定义这两个类。然后将它们存储在字典中,并以它们的名称作为键。在他们的构造函数中,对包装在其
kwargs
中的每个项目执行
setattr
。够清楚吗?;)可能不是已经定义的最佳路径类。这不是我正在努力解决的问题。我正试图找到最好的方法来获取包含“tickerId=0,field=2,price=201.81,canAutoExecute=1”的字符串,并定义每个命名变量的保留值。我忍不住觉得问题的根源在于您无法决定是记录消息还是序列化对象。使用标准库的JSON或pickle或cheese shop可能会让您的生活变得更加轻松。这样的类会是什么样子?您是否在问如何实例化已经定义的类的实例?或者如何根据需要为这些值定义动态类?无论哪种方式,您是否可以演示您解决问题的尝试,而不是使用(模糊的)规范的数据样本?我将定义这两个类。然后将它们存储在一本字典中,名称为th