python即时输出

最近项目中遇到一个问题,在docker中运行的程序明明已经启动,进程中也已经在RUN,但是logs中并没有任何内容。查了多遍代码也没有发现什么问题,最后发现一个很白痴的错误,码一下: 该程序是一个定时启动的脚本程序,程序中使用的是APScheduler包实现的定时启动,并且使用supervisor管理后台运行,程序本身并没有错误,不过我偷懒使用print输出在日志文件中,这一操作导致程序正常运行但是日志中没有内容。 当我们打印一些字符时,并不是调用print函数后就立即打印的。一般会先将字符送到缓冲...

Continue Reading »
分享到:

python 远程调试以及多线程代码调试

Pycharm Pro(学生邮箱申请)自带SFTP,可配置ssh,使用远程服务器运行代码并调试。在设置中搜索interpreter,设置远程解释器。设置后好,debug以及运行会自动通过SFTP上传代码到服务器运行以及调试。 当运行多线程代码,pycharm打断点也不会停止,这时就需要用python自带的pdb进行调试。 当代码文件夹过大,上传速度太慢时,也可以设置pdb,进行调试。 pdb可以打印call stack,单步运行等,基本图形界面能做的自带的debug工具都能做。 https://docs.p...

Continue Reading »
分享到:

【Python】Tkinter的 for 循环 Button 中监听事件的总结

在 Python 的Tkinter库中,事件监听常用两种方式: Button 的 command,然后command 指向一个具体的函数,可以通过lambda 传参, bind 函数,可以绑定单击、双击多种操作,但是传参需要用到额外的库 functools 首先看一组 for 循环里 创建的 Button, 如果想要监听事件,需要用到 lambda 匿名函数,看一下例子: def createGameURLs(self): self.button = [] for i in range(3): self.b...

Continue Reading »
分享到:

【Python】聚类算法中确定最佳聚类数的指标-Davies-Bouldin指数

如果数据集的标签未知,则可以使用 Davies-Bouldin指数来评估聚类的效果, 是由 David D. Bouldin 和 Donald W. 提出的一种评估聚类算法优劣的指标, 其中Davies-Bouldin指数越低,则说明聚类效果越好。 该指数表示聚类之间的平均相似度,其中相似度是将聚类之间的距离与聚类本身的大小进行比较的度量。 零是最低的分数。接近零的值表示更好的聚类。 在使用中,将Davies-Bouldin指数应用于聚类分析的结果,如下所示: from sklearn import da...

Continue Reading »
分享到:

【Python】使用BIRCH算法对KDDCUP99数据集的聚类结果进行可视化/计算香农熵

1. 背景:在写DoS论文时,需要计算基于BIRCH算法聚类实验生成的数据子集的香农熵。根据香农熵的差异来表示不同的数据子集和原始数据之间是存在差异的,同时原始数据集的较大的香农熵也说明该数据集具有相对复杂的数据分布规律,间接证明使用BIRCH算法对数据进行预分类的操作是有意义的。 同时需要将数据子集的数据可视化以展现聚类算法的有效性。 2. 计算香农熵:代码中的数据集是10%的KDDCUP99数据集,该数据集经过归一化和独热编码的处理,其中仅包括Normal数据和DoS数据。香农熵的计算 公式如下: 根...

Continue Reading »
分享到: