所以我开始研究它,并且我没有找到一种很好的方法来解析文件,遵循我将在下面显示的格式。我参加了一个数据结构课程,但它并没有真正帮助我做我想做的事情。任何帮助将不胜感激!
目标:创建可以读取,创建和操作自定义文件类型的工具
文件格式:我确定这种格式有一个名称,但我找不到它。无论如何,格式可能会有一些变化,因为可以添加,删除或更改变量名称。此外,在每个变量名称之后,数据可以是几种不同类型之一。现在文件不使用子组,但我想做好准备,以防他们决定改变它。我能想到的唯一能保持不变的是GROUP = groupName,END_GROUP = groupName和varName = data。
GROUP = myGroup
name1 = String, datenum, number, list, array
name2 = String, datenum, number, list, array
// . . .
name# = String, datenum, number, list, array
GROUP = mySubGroup
name1 = String, datenum, number, list, array
END_GROUP = mySubGroup
// More names could go here
END_GROUP = myGroup
GROUP = myGroup2
// etc.
END_GROUP = myGroup2
字符串和日期包含在“(即”myString“)中
数字被写为原始的ascii编码数字。如果它们大或小(即5.023E-6)
列表以逗号分隔并括在括号中(即(1,2,3,4))
其他信息:
我希望能够轻松读取文件并根据需要对其进行操作。例如,如果我读取文件并且我想要更改组中特定变量的属性,我应该能够按照dataStructure.groupName.varName = newData的方式执行某些操作。
创建我自己的文件应该很容易(使用我自己制作的默认模板或传入的自定义模板)。
我希望它将数字视为数字而不是字符串。我应该能够在数据结构中添加,减去,乘以等数值
这个大骗子,我想用香草python写这个,因为我们的系统只有最基本的模块。有人下载另一个模块是一个巨大的痛苦,因为他们必须创建自己的虚拟环境并将模块导入其中。该工具应尽可能与系统无关
初始尝试:我正在考虑使用字典来组织级别的数据。但是,我喜欢使用点结构的想法(就像使用MATLAB结构看到的那样)。我写了一个函数,它将读取文件的所有行并从每行中删除换行符。从那里我想检查每个GROUP =我能找到。我会开始向该组添加数据,直到我按下END_GROUP行。使用正则表达式我应该能够解析该行以确定它是日期,数字,字符串等。
我在问这个问题,因为我希望对我可能遗漏的事情有所了解。我希望这个工具在我离开开发团队很久之后就可以使用了,这就是为什么我要尽力使它尽可能直观易用。谢谢大家的帮助,我真的很感激!如果您需要更多信息来帮助我,请与我们联系。
编辑:为了澄清我需要什么帮助,这是我希望回答的两个主要问题:
如何构建数据结构以保存分组数据?
是否有可接受的解析数据的算法?