BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #97795同步于 2018/6/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

【问题】如何存取程序输出的小规模数据

yo1995
2018/6/26镜像同步11 回复
一直在慢慢学编程,还是比较白,有一事不明向编程大拿请教[em17] 一般而言,最方便的存储程序输出数据的方案是什么? 可能不能一概而论,那就大致分为三类: - 最小规模(数十行); - 较小规模(数百行); - 小规模(数千至数万行); 数据的存储与管理 === 以前编程的时候,经常直接把需要存档的数据写入一个文本文档,以后需要的时候再用脚本语言进行简单处理。在做物理实验的时候发现,许多上位机软件的数据存储也是纯文本文档的。 现在编的程序比以前复杂一点,有时需要最简单的键值结构或者表结构,这时感觉文本文档有些力不从心,一来写入格式设计不好容易混乱,二来增删查改有点繁琐。有时用文本文档有时用csv,都不够方便。 学过一点数据库和SQL语言,但没用过现代的数据库,也不知道有哪些适合于这种小规模数据的轻量级数据库,并且多语种适用的(比较懒想在这方面一劳永逸) 希望大大们指点!谢谢[em17] @fuxuemingzhu @cocoyimasa
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
yo1995机器人#1 · 2018/6/26
最好是比较常见的格式,通用性强一点的[em23]
fuxuemingzhu机器人#2 · 2018/6/26
我讲一讲自己的做法吧,可能也不是太好。 一般如果只是普通的打印中间的结果,会直接print大法,这个时候如果需要把输出导入文件,那么用>重定向生成纯文本文件。这个结果一般只是用来看的,不用来分析。 像格式化的数据,生成csv是挺靠谱的。这个也只能保存纯文本的,一般适合数据处理结果的保存。一般做数据挖掘比赛用这个格式。 如果含有挺多文本的,或者数据量特别大的时候,再或者不需要把全部数据加载到内存中进行分析的,使用数据库。比如爬过论坛和BT都是这么保存到了Mysql。 保存模型的话像上面这些方法就不好办了,python里面我一般都存成pickle了。现在封装了通用的类,只要传进来任何对象都转成pickle存储,特别方便。 像你说的键值对,我觉得可以修改成json格式,然后保存成文本。保存和加载都比较容易,包括网络通信也方便。 基本就这样吧。一点点经验,和大家交流一下。
cocoyimasa机器人#3 · 2018/6/26
轻量级数据库可以考虑mongodb,读写速度都很快。mongodb非常适合键值对的数据结构存储。非常简单易学,增删改查简单明了。而且支持的编程语言很多。 感觉比较适合你的应用场景。
Nroskill机器人#4 · 2018/6/26
json足够
yo1995机器人#5 · 2018/6/26
谢谢谢谢!学习了 【 在 fuxuemingzhu 的大作中提到: 】 : 我讲一讲自己的做法吧,可能也不是太好。 : 一般如果只是普通的打印中间的结果,会直接print大法,这个时候如果需要把输出导入文件,那么用>重定向生成纯文本文件。这个结果一般只是用来看的,不用来分析。 : 像格式化的数据,生成csv是挺靠谱的。这个也只能保存纯文本的,一般适合数据处理结果的保存。一般做数据挖掘比赛用这个格式。 : ...................
yo1995机器人#6 · 2018/6/26
谢谢,我去了解一下! 【 在 cocoyimasa 的大作中提到: 】 : 轻量级数据库可以考虑mongodb,读写速度都很快。mongodb非常适合键值对的数据结构存储。非常简单易学,增删改查简单明了。而且支持的编程语言很多。 : 感觉比较适合你的应用场景。
nuanyangyang机器人#7 · 2018/6/27
没有标准。各种格式、工具各有所长。可以考虑:纯文本、ini文件、csv、xml、json、yaml,以及自定义的二进制格式、bson,还有简单的数据库:sqlite、derby、h2,还有比较大的比如mongodb、couchdb、mariadb、postgresql、还有各种商业的数据库产品。
lance6716机器人#8 · 2018/6/27
暖神还在啊,感觉好久没出现了 如果是python的话,小数据库可以是sqlite,懒得建表可以存csv,不规则数据json.dump。C++一般只写过算法,这种实用型技术栈不了解
FromSixToTen机器人#9 · 2018/6/28
就是这个答案,看需求,可能sqlite更实用一些。 【 在 nuanyangyang 的大作中提到: 】 : 没有标准。各种格式、工具各有所长。可以考虑:纯文本、ini文件、csv、xml、json、yaml,以及自定义的二进制格式、bson,还有简单的数据库:sqlite、derby、h2,还有比较大的比如mongodb、couchdb、mariadb、postgresql、还有各种商业的数据库产品。