之前公司有个需求,有一个本地文件夹中会不定时产生一些生产日志文件,要求写一个exe程序定时将这个文件夹中的文件上传到公司服务器,并将已上传的文件移动到另一个文件夹作为备份。此处给出一个简化的版本,用Python和PyQt5实现定时删除文价夹中文件的功能。
最后再打包为exe文件运行,打包可以用pyinstaller、nuitka等完成,我最开始使用的是pyinstaller,但是好像需要关闭电脑防火墙,由于我是用的公司电脑,权限控制的比较严,我没有权限关闭防火墙,所以改用nuitka完美解决。
PyQt5绘制图形界面:
class Ui_MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建一个QTimer实例
self.timer = QTimer(self)
# 连接QTimer的timeout信号到另一个槽函数
self.timer.timeout.connect(self.check_and_delete_files)
# 布局设置
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(331, 231)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser.setGeometry(QtCore.QRect(50, 30, 241, 121))
self.textBrowser.setObjectName("textBrowser")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(10, 30, 72, 15))
self.label_2.setObjectName("label_2")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(50, 170, 93, 28))
self.pushButton.clicked.connect(self.on_pushButton_clicked) # 绑定点击事件
self.pushButton.setObjectName("pushButton")
self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_3.setGeometry(QtCore.QRect(200, 170, 93, 28))
self.pushButton_3.setObjectName("pushButton_3")
self.pushButton_3.clicked.connect(self.on_pushButton3_clicked) # 绑定点击事件
MainWindow.setCentralWidget(self.centralwidget)