Python 脚本处理一些数据,从外部写数据到 excel,外部因素非常多,有可能中途失败了,失败程序报错停止时,如何调用保存方法,把报错之前的数据仍写到 excel 中?

2018-05-10 17:29:32 +08:00
 wsds
1.python 脚本处理一些数据,从外部写数据到 excel,外部因素非常多

2.很大可能中途直接失败了,失败时程序报错停止时了,也调用不到 save 方法()

3.如何调用保存方法,把报错之前的数据仍写到 excel 中?

4.用的第三方库是 xlwt,为什么没有写一行,保存一次,因为我发现这货,保存后,再写,之前写的就清空掉了,蛋疼
2563 次点击
所在节点    Python
13 条回复
264768502
2018-05-10 17:37:02 +08:00
try/finally(save)?
zhangsen1992
2018-05-10 17:40:20 +08:00
不好处理 直接数据库操作 copy 到 excel
haoyuwu3
2018-05-10 17:40:34 +08:00
try ...finally
wsds
2018-05-10 17:53:33 +08:00
@haoyuwu3 异常目测有 10 几路,try 不完啊,
haoyuwu3
2018-05-10 17:56:53 +08:00
@wsds except 是用来捕获各种异常的,无论异常是什么,finally 在程序结束前都会执行的
dassh
2018-05-10 18:13:35 +08:00
4.用的第三方库是 xlwt,为什么没有写一行,保存一次,因为我发现这货,保存后,再写,之前写的就清空掉了

试试 openpyxl,至少没有这个问题,而且我记得 xlwt 对 xlsx 支持得不是很好?
ml1344677
2018-05-10 18:20:18 +08:00
@dassh +1 对于 xlsx 有可能遇到问题
q9REUgpVVCU77pWj
2018-05-10 20:05:03 +08:00
不怕麻烦的话,就写一次,存一次,读一次,再写再存咯。但这也太蛋疼了。
xjp
2018-05-10 20:53:01 +08:00
如果只是简单格式的话 我建议不要用 xlsx 了 也不用第三方库了 直接写 csv 或者干脆\t 分割 excel 也可以直接打开

open/write 就是干
Luckyray
2018-05-10 20:56:18 +08:00
我遇见过个类似的跟楼上思路类似,先保存到文件,就用空格或者逗号分隔,搞定之后再写到 excel
so1n
2018-05-10 20:57:51 +08:00
@dassh 这东西没有追加模式只有写模式?
RangerWolf
2018-05-10 21:22:36 +08:00
我一般是使用 pandas 直接写 Excel
另外, 两次写文件之间, 至少保持 2-3 秒的间隔。
lihongjie0209
2018-05-10 21:37:00 +08:00
你就不能先写到 csv 文件中吗???

假设你的程序运行十分钟, 一分钟创建一个 csv 文件, 把一分钟内的数据都写入到这个文件, 这样报错也只会丢失一分钟内的数据(当然时间间隔可以更小),


------ 从这里开始不会收到外部的影响---------
最后把所有的 csv 文件都合并成一个最终版本.

最后的最后如果有需要那就把 csv 转成 excel

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/453844

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX