往事如烟:运行了一下十几年前写的程序

最近看了一点matplotlib的内容,上次用到matplotlib还是使用它来生成声望分与Reputation数值对应关系的几幅图形,代码是在Linux下运行的,早就不知道被我弄到哪里去了。

image.png
(图源 :pixabay)

然后突然想起来,十几年为某公司工作时,也曾经用过matplotlib来完成某项工作,好像是用一堆数据为某个公司生成一个聚合物的结构图形。

突然很好奇自己十几年前写的代码是什么样子?然后又想看看自己画出来的聚合物是什么样子?当然,其实还很好奇自己以前写的程序是否还能运行。

费了九牛二虎翻出来以前工作的内容,大致回想起一些往事。当时我是一名C++程序猿,从未接触过Python,然后公司突然交代了这样一个任务,我完全是一头雾水,不知道从何着手。

不过不能因为不会或者有难度就推脱不做呀,只能埋头苦干,边学边弄呗。

就这样,学会了Python的基本用法;学会了如何用Python读写csv数据文件;学会了如何使用matplotlib来画图。

当然,与其说“学会”不如说一知半解,只能将将地应付当前的工作罢了。

#########################################################
##  Description                                        ##
##  Purpose: To generate polymer structure for xxxxxxx ##
#########################################################
# Features:
# (1) Separated the input data from processing, so you can modify them easily.
# (2) Separated the algorithm to generate ety_seq, vac_seq from processing
# (3) Automatic calculate the image length and width
# (4) Automatic generate the text information and draw them on the upper-right corner of the image
# (5) Save image on the same folder of the script
# (6) Save "sequence data" as a csv output file
# (7) User can control line style, color, font size, dpi in setting section

这是我代码头部的部分注释,感谢当年认真的自己,不然这代码看起来更是一点不懂了。

犹记得当初需求方给我的数据是硬编码到代码中的,以下为部分数据示例:
1698144912506.png

更为搞笑的是,原始输入数据经常变化,所以每次数据变化,还要把数据弄出上述格式,复制到代码中,然后再进行处理。

所以我做的第一个改进就是把原始数据放到文件中,我的程序直接读取并处理成需要的数据格式,二不是硬编码。

然后是算法的实现,这些算法理论上涉及到高深的化学知识,不过我不必去了解这些,对方给我一些伪代码,我改成Python代码即可。

然后就是画图部分代码
1698145309872.png

还有将一些数据写入CSV文件的代码。

嗯,怎么说,算是看懂了,也大概没看懂啥,这个项目中,代码啥的都是“术”,只有算法部分才算是“道”的范畴,但是那部分我除了照猫画虎地翻译,是一点也不懂呀。

好了,把代码拿出来运行一下,结果直接就报错:
1698145533909.png

好吧,这个错误一眼就可以看出之前的代码是 Python2的,那时候大概还没有Python3呢吧?用Python3的语法改一下,通过。

重新运行,又报如下错误:
1698145628997.png

这个就简单了,直接安装一下 matplotlib就好了:pip install matplotlib

还遇到打开csv文件错误(用file()而不是用open()),写入文件错误(用的wb而不是w),而这些代码十多年前都是可以正常运行的,之所以出错,大概是新版本Python语言做了调整吧?

弄了半天,总算可以正常运行了:
1698145898315.png

然后看一下我生成的图像:
1698145982429.png

这是什么鬼?看一下局部细节吧:
image.png

哎,还是不知道是什么鬼。

不过不管怎么说,能把十多年前的程序运行起来,还是很开心的,一下子回想起很多往事,历历在目,恍如昨日。

可惜的是,好多年前的程序能运行起来的已经不多了,遑论还有大把大把的程序被我搞到不知道哪里去了呢,一声叹息!

相关链接

Sort:  

太强了 太强了

不值一提

现在终于知道O哥这O神的称呼怎么来的。

果酱果酱

请接受小女子的膜拜😆

太厉害了!自学成才!

👍👍👍👍
厉害了,我的哥

膜拜咱们的O神!!!
@tipu curate

是大佬!新人需要一点delegation🥹会多多创作~