cups数据自动导入软件开发

1.环境配置与疑难问题解决
先是在我自己电脑上开发的,最终环境如下:
win7 64位,python3.4.4 64位,Oracle 11g Release 2 (11.2.0.1.0) 64位
另,编辑器用的notepad++和ultraedit
oracle
下载:要先在oracle官网注册账号,32位下载地址 64位下载地址
安装:即使版本对了也是各种问题,搜一搜查一查就安装上了,安装结束,别忘了打开sql plus测试一下正常不。

python3.4:下载地址
安装的时候,记得把环境变量自动设置给配置好,不然要手动去配置环境变量及路径
cx_Oracle包的安装:pip install cx_Oracle
出现问题,或者缺少microsoft visualc++库就直接去官网下,手动安装:地址
11g+python3.4地址:入口

2.开发流程
cup每天会生成一批报表文件,文件每一行都是以一定顺序写入的交易记录,先需要编写一个带有界面的软件,根据用户输入的日期范围,自动把范围内所有文件导入到远程数据库里。
难点:1、文件是字节流,python处理字节流文件貌似没见过,2、文件太大,可能要用批导方式,3、代码的鲁棒性要随时注意 4、界面要做的美观估计不能只用库的gui,估计要用专门的软件生成界面。

3.开发遇到的难点及解决办法
1、字节流文件的逐行读取与处理
由于文件里每行中变量是按照固定字节定位的,所以要先把读入的每一行按照字节分隔,分隔成列表后,才能经处理后插入这一条记录到远程数据库。刚开始用read(n)读取指定字节大小,发现遇见汉字,本来应该是gbk编码中,汉字占2字节,结果read硬是当成一个字节读取,导致数据出错,最后使用:现以二进制方式打开文件,在二进制情况下切分字符后,再对二进制串gbk解码成str,以供插入语句使用。
2、文件太大,使用cx_Oracle的批导方式,可以提速一两个数量级
3、代码鲁棒性,有可能出问题的地方(建表,插入,打开文件,处理每一行,获取用户输入,检查输入合法性。。。。)都需要用try。。。except。。。else。。。finally这种方式来处理,保证程序能应对各种异常现象。
4、gui 还在做,目前只是用了官方内置的库tkinter,可以获取用户输入,并且打印相关信息
4.优化与完善
1、速度
目前使用time.clock()计算时间,程序虽然鲁棒性不错,但是比较耗时,可以把批导方式修改一下
2、界面
先准备在tkinter基础上做到尽可能美观(因为只是公司内部使用),实在不行再使用
wxWidgets,Qt,GTK这些来做。
3、下一步
领导的意思是加入用户登录控制,用户权限控制,我觉得可以把用户的信息存在远程数据库里,来进程用户的控制,至于用户权限的控制,就直接在oracle数据库中执行相关的语句,让oracle来管理用户的权限(可以操纵某些数据否?)
5.总结
锻炼了独立做事的能力,独立开发的能力,代码暂时需要保密,就不贴了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值