跳转至

2024

一些脚本代码

重要说明

以下所有代码均需要你安装python环境,如果你不知道在哪儿下载python,可以点击这里

若如特殊说明,以下python代码均可在python 3.8以上环境运行

关于反射的一点理解

之前看面向对象教程的时候提到反射这个功能比较强大,但是感觉一直用不上,这次开发AutoUploader的时候就遇到一个类似的场景:因为要实现多个rclone命令,所以每个任务功能给分开了,但是这样做会导致前端界面部分发送数据给后端时,还要去判断调用哪个任务类,如果使用if判断会很麻烦,而且如果后续再增加命令,会导致代码冗长,所以这次用到了反射,之前的教程中是在类外部实现反射,这次提供一个在类内部实现反射的功能:

判断磁盘占用情况

近期测试EncryptionAssistantpython版时,发现一个比较奇怪的bug:当程序运行的时候,无论是单线程还是多线程,总有一两个文件无法加密或解密,经过多次测试发现,每次python生成随机磁盘的时候都会选择到一个因着无法访问的盘符,比如有的U盘经过了全盘加密,当插入U盘的时候,会先占用盘符A,之后打开加密卷后占用盘符B,但是python的os.path.exists()会认为盘符A是不存在的,从而导致尝试挂载磁盘A失败,解决办法如下:

利用rclone实现GoogleDrive链接转存

有的时候因为某些需要,看到网上分享的GoogleDrive网盘中的资源比较好,想保存到自己的网盘中,虽然也有一些方法可以转存,但是总体比较繁琐,最近研究rclone命令行发现可以实现一条命令转存。

在Linux系统中更新python问题

之前尝试在Ubuntu中在线编译python 3.10,遇到了不少问题,虽然也编译好了,但是总感觉很麻烦,后来研究是否有比较简单的方法去更新,后来看到网上有人说替换软件源,但是实测不行,后来利用minianaconda发布的脚本就可以类更新了(本质上是单独安装了一个python解释器,所以严格意义上不算升级了)

学习PyQt5时踩过的坑

多窗口交互的问题

一开始在设计DropIt的GUI界面时遇到一个问题,一直让我卡住,就是一旦点击某个按钮,创建了新的界面时,下面的窗口就没法点击了,就比较困惑,不知道为什么会出现这个问题,后来在设计信件助手的GUI界面时,意外发现原来不是我写的代码问题,而是当时多复制了一条代码导致的:

对自定义信号的一点理解

  1. PyQt可以自定义信号,但是一旦用到自定义信号,则需要创建两个类,但如果这两个类之间需要相互交互数据的话,就有些麻烦。为了能解决这个问题,以下是参考代码示例(排版助手代码示例):