版权声明
版权声明:本文为CSDN博主「蓝精灵喜欢格格巫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dive668/article/details/119023561
前言
此处遇到os.popen()和os.system()的区别,后者是黎哥所教。前者自己还没探索出来。
这次学习,学会了中断执行一行代码的实现,但是如何进一步对命令行进行传参,比如我们先通过os.system()
输入了一行mysqldump导出命令,但是终端会提示输入密码,怎么让pyqt进一步传递这个参数过去???
再弹出个对话框,用户输入,点击按钮后再os.system()执行?还没试,只是有这个想法。
备份代码
from PyQt5 import QtCore, QtGui, QtWidgets
import sys,os
def data_backup(self):
#r"mysqldump.exe --add-drop-table -u %1 -p %2 student_status_information"%("root","123456"),"r"
key="123456"
self.back_path="D://backup"
os.system("mysqldump -uroot -p%s student_status_information > %s.sql" % (key, self.back_path))
Success_msg=QtWidgets.QMessageBox()
Success_msg.setText("备份数据到D盘根目录成功,文件路径为{}.sql".format(self.back_path))
Success_msg.exec()
终端显示如下:
D盘下文件:
恢复代码
from PyQt5 import QtCore, QtGui, QtWidgets
import sys,os
def data_restore(self):
key="123456"
filename="D://backup.sql"
if os.path.isfile(filename): # 判断该路径的是否是文件
os.system("mysql -uroot -p%s test_for_student_status_information< %s" % (key, filename))
Success_msg=QtWidgets.QMessageBox()
Success_msg.setText("从{}恢复数据成功".format(filename))
Success_msg.exec()
else:
Error_msg_stu_info=QtWidgets.QMessageBox()
Error_msg_stu_info.setText("请检查D://backup.sql文件是否存在")
Error_msg_stu_info.exec()
回显如下: