1
whileFalse 2020-03-20 13:32:08 +08:00 via iPhone
不考虑数据库吗
|
2
cherishxyn OP @whileFalse
如果真的要用数据库,我就在多花些时间,我用的功能不复杂,谢谢您的回复 |
3
ipwx 2020-03-20 13:35:17 +08:00
。。。你先随便找个格式存储,每过一天批量转换成 excel 不就行了???
|
4
cherishxyn OP @ipwx 你的意思是,比如果存储成 json,如果不停的向里面添加数据,数据多了会卡吗,是不是每次添加数据前都要打开,这样随着数据多,是不是意味着就卡了
|
5
bearqq 2020-03-20 13:41:55 +08:00 via Android
建议存.csv ,格式了解一下
同时数据量到一定时候就分文件 处理大量数据也不建议用 excel,建议自己撸 python 数据注重查询的话可以用数据库,否则直接存文件也没问题 |
6
ipwx 2020-03-20 13:42:07 +08:00
|
7
Juszoe 2020-03-20 13:42:16 +08:00 via Android
sqlite 不知道符不符合你的需求
|
8
ipwx 2020-03-20 13:42:18 +08:00
另外每天换一个文件。
|
9
loading 2020-03-20 13:43:57 +08:00 via Android
存 sqlite 或者更粗暴存 txt,
一个数据一行,文本好分析,配合文本工具,多大文件都能秒开。 |
10
loading 2020-03-20 13:45:06 +08:00 via Android
你只要花几分钟看看 python 如何读一个文件就行了,按行读取。
|
11
cherishxyn OP @ipwx 因为我想着如果掉点了,就没了,不过,现在想来,省事的话就可以用这种,毕竟我要求不是特别严格,只不过占些内存而已,看大家的回答,我想这几天在学习下数据库
|
12
ipwx 2020-03-20 13:46:10 +08:00
|
13
mazyi 2020-03-20 13:46:27 +08:00
这不是 python 的问题,是设计问题
|
14
ipwx 2020-03-20 13:46:56 +08:00
@cherishxyn 而且文件缓冲区是固定的,不是说 f.close 之前就不存任何数据进去,而是 f.close 之前没打满缓冲区或者没调用 .flush() 就不写入。超过缓冲区大小会写入一批的。
|
15
loading 2020-03-20 13:56:38 +08:00 via Android
物联网用的多的是时序数据库,你了解一下,应该很适合你。
|
16
cherishxyn OP @ipwx 谢谢,明白了
|
17
Ediacaran 2020-03-20 13:59:37 +08:00 via iPhone
Append csv 文件
|
18
cherishxyn OP @loading 感谢仁兄的传授
|
19
cherishxyn OP @bearqq 谢谢
|
20
qile1 2020-03-20 17:46:38 +08:00 via Android
检验科仪器每天都传输数据,一般通用方法是保存一份 txt 文件,同时解析一份结果保存一份到数据库
|
21
iceecream 2020-03-20 17:55:52 +08:00
csv 不香吗,既可以 tail、cat、awk 当文本打开,也可以走 excel
|
22
Vegetable 2020-03-20 18:05:20 +08:00
csv,sqlite 这两个。
别 Excel,Excel 行数有上限,一百多万行。.xls 只有 65535 行。操作 Excel 也需要更多内存,速度会比想象的慢,OOM 也来的更早。 |
23
littlewing 2020-03-20 18:06:54 +08:00 via iPhone
sqlite
|
24
shm7 2020-03-20 19:34:01 +08:00 via iPhone
没吃过没看过很多日志采用滚动记录的方式么,每个日志文件设定上限 size… 数字的话当文本存 txt csv flush 一下 多写几个 try catch
|
25
ackoly 2020-03-20 19:40:26 +08:00 via iPhone
csv 加 pandas 不香吗
|
26
bitdust 2020-03-20 20:13:05 +08:00
python 内置的 log 库,很香的。
1.自定义格式 2.做滚动存储 3.远程存储 4.自动打时间戳 |
27
sintrb 2020-03-20 21:53:47 +08:00
用 csv 吧,csv 有个好处是格式简单,能够直接用 excel 打开。
用追加模式打开 csv 文件,不停的往里面写入数据就行,写了之后 flush 一下,防止掉电丢失,类似下面的: import time, random, datetime, io def read(): return random.random() with io.open('/tmp/t.csv', 'a', encoding='utf8') as f: while True: v = read() l = '%f,%f\n' % (time.time(), v) if type(l) != type(u''): l = l.decode('utf8') f.write(l) f.flush() time.sleep(1) |
29
sintrb 2020-03-20 21:59:50 +08:00
@sintrb 把下划线换成空格
import time, random, datetime, io def read(): __return random.random() with io.open('/tmp/t.csv', 'a', encoding='utf8') as f: __while True: ____v = read() ____l = '%f,%f\n' % (time.time(), v) ____if type(l) != type(u''): ______l = l.decode('utf8') ____f.write(l) ____f.flush() ____time.sleep(1) |
30
cherishxyn OP @sintrb 非常有用,谢谢,就用这个方式了。后面我继续学习数据库,到时候再从新做一个。楼上很多人说的非常实用,感谢,学习很多
|
31
cherishxyn OP @Vegetable 学习了,感谢
|
32
cherishxyn OP @bitdust 这个对我来说是新东西,我会去查看的,谢谢回复
|
33
cherishxyn OP 我还有个问题想问下,就是大家回复的对我很有帮助,我是否有必要在下面一一回复感谢,回复多了,整个页面很多客套话,后来人也不便阅读,不回复显得不礼貌,该怎么办呢
|
34
jianghu52 2020-03-21 12:47:58 +08:00
@cherishxyn 你可以最后回帖的时候 @一圈人,感谢一下就行了.另外,如果可能的话,最好把你最后修改之后的结果也贴上来,这样很多人还会帮你看看哪里还有不足.
|
35
cherishxyn OP @jianghu52 好的,我现在最开始构思的,估计还要一段时间做出来,谢谢
|
36
cherishxyn OP |
37
loading 2020-03-23 13:38:03 +08:00 via Android
@cherishxyn 每层楼都有一个空心的爱心,点一下。
|