工作日记||柳暗花明

作者: 宴会说 | 来源:发表于2024-03-27 07:40 被阅读0次

同事小毛请求我帮忙写一段小程序,批量处理一些图片。我仗着有AI编程助手,大概看了下数据和要求,不假思索,一口答应下来。

我还故作潇洒地交待小毛,后天来拷数据。当时如果照镜子,我可以想象自己神情,应该极像诸葛亮,当年诸葛亮交待鲁肃三天后江边搬箭,也不过如此自信,我一下找到了感觉。

潇洒作态一时爽,躬身开发把神伤。真正着手写代码时,我才发现难度不是一般大。数据多大80多Gb,文件夹将近一万六千个,涉及图片大约三四百万张。小毛的要求是文件按照某一规则统一命名,然后将同一文件夹下的图片放到一个PDF文件中,PDF用文件夹名称命名。前两步比较好解决,在AI机器人的帮助下,我迅速完成文件夹名称重命名,耗时不过几分钟。到图片生成PDF文件时,我学聪明了些,拷贝出几十个文件夹作为测试数据,调试效率会高很多,不然每次测试都提取几百万张图片,效率太低。

AI机器人帮助下,迅速完成第一版程序,我略作修改,同样几分钟,完成测试图片转换。当我打开转换后的PDF文件时,我开始庆幸采取了测试图片的思路,否则花大量时间完成几百万张图片转换后,发现问题,再进行优化修改,太浪费时间。转换出来的PDF文件存在巨大问题,每个页面都只保留了左上角区域,图片显示不完整,明显不符合要求。按照以往编程习惯,我一般会去某度,某hub网站查询,甚至查阅官方API,再修改。现在有了机器人,不用那么麻烦,我直接对机器人说,生成的页面不完整,请根据页面缩放图片以完整显示,帮我优化代码。不到一分钟,优化代码出现在对话框。

代码优化了,却直接无法运行。原因是机器人给的一个调整图片DPI的依赖包,windows环境无法安装。看来此路不通,只有另寻他法。

前一段时间,帮同事写批处理调查表程序时,用到word文档渲染技术。当即决定,曲线救国。先将图片插入到word文档,再将word文档转换为PDF。将思路逐条告诉机器人,它倒也不含糊,又是不到一分钟给出代码。细看之下,代码比我想的简洁很多,完全没有采用渲染的方式,直接调用插入方法,不同的是插入方法里面写了一个参数,应该是用来优化图片插入尺寸的参数。打开word文档和PDF一看,我不由地大喜。确实是我想要的效果,每个图片都根据页面尺寸进行了缩放,都能够完整显示。

大喜之下,我赶紧把测试结果发给小毛,期待得到一个可以的答复。几分钟后,可以的答复虽然如约到了,可后面跟着个但是,小毛说,她对比了一下,有几个PDF文件图片不完整,文件夹内有些图片没能转换到PDF里面。

有了但是,我就必须想办法把但是消灭。仔细对比下几个有问题的PDF文件,我发现问题所在。问题的根本在图片的扩展名,那几个文件夹中,有几张图片扩展名不是jpg而是tif。找到问题的根源,便极好解决,懒得再找机器人,我直接手动修改,增加了几个条件,修改完善好代码。为避免出现新的问题,我又换一批测试数据,重新生成PDF文件,发给小毛后,终于得到没有但是的回复。

就按这个标准跑程序。数据量一大,又遇到新问题,测试数据少了暴露问题不充分,文件夹里有非图片文件,无法插入,文档占用无法转换,全都跳出来了,程序跑不到几分钟就崩溃。时间紧任务重,顾不得每个都去排查,我简单粗暴地加个容错机制,先把绝大部分跑出来,记录出错的文件,少量文件人工处理,总能抢些时间出来。

容错机制写好,继续跑程序。跑了一下午,才生成一千多个PDF,又一个不容忽视的问题出现在面前。每个word文档再执行一次转换操作,效率太慢,我大概估算了下,每个文件转换大约耗时30秒,30秒相对于人工操作,已经称得上飞速,但是生成将近一万六千个文件,意味着需要五天才行。刚好小毛问我大概什么时候拿到成果,我只有无奈地把单个处理时间30秒给她说了。小毛也极聪明,马上算出来需要五天,明显无法满足项目需要。我只有给她出馊主意,上10台电脑分开跑数据,可以缩短到大半天,最后合下数据就可以,小毛听我这么说,也只有无可奈何地答应下来,除了加电脑,她也想不到更好的办法,人工操作,估计十个人一个月也做不完,而且还会有错误。

小毛筹集电脑去了,下午下班,我只有把电脑挂机跑数据。

晚上翻来覆去睡不着,思考提高转换效率的方法。python的缺陷就是多线程,多线程并发处理不是它擅长的,该如何是好,又想着换个模块试下,我没有能力从底层写,只能做一个调包客。

心里有事,迷迷糊糊睡不着,不到六点起床,跑到办公室,一看电脑,才跑了三千多个文件,效率确实太低。

自己想不到办法,内置的AI机器人只能给出这样的解决方案,何不问下某搜索引擎的机器人,再个它多提点要求。

上来我就给引擎的机器人戴高帽子,你是一位python高手,请帮我写一段程序,实现word文档批量转PDF,特别加了速度快的要求。这机器人也不含糊,大概一分钟,给出一段代码,我仔细一看,完全抛弃了转换的思路,好像是用win32库直接替换扩展名。替换名称肯定比文件转换快,我感觉这方法有戏。停掉正在跑数据的程序,选出一部分数据,测试引擎机器人的代码,只见屏幕一闪,大约也就十几二十秒,就弹出“OK,已完成”字样。不会这么快吧,我赶紧打开结果目录看,果真几十个文件全部转换完成,打开几个检查下,完全没有问题,估计这个方法一秒钟可以完成十来个PDF文件,一秒钟十来个文件,对比上一版本,一个文件30秒的速度,这效率提升,太厉害了。马上用新代码,跑全部数据,算下来,最迟下午小毛就可以拿到数据。

小毛上班来了,我又神气地告诉她,不用再去借电脑了,数据成果也不用等到明天了,今天下午就可以全部完成。看着我神气的样子,小毛满脸都是惊讶加崇拜。

插上AI的翅膀,即使自己是头猪,也能飞起来,做好AI翻译工作,实现工作目标。

相关文章

网友评论

    本文标题:工作日记||柳暗花明

    本文链接:https://www.haomeiwen.com/subject/pfobwdtx.html