Python实现SFTP的文件下载
一、界面
1、数据文件下载界面
(1)GUI显示
(2)代码
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(600, 600)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth())
Form.setSizePolicy(sizePolicy)
Form.setMouseTracking(True)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/re/icon.jpg"), QtGui.QIcon.Normal, QtGui.QIcon.On)
Form.setWindowIcon(icon)
Form.setAutoFillBackground(False)
Form.setStyleSheet("background-image: url(:/back/2.jpeg);")
self.label_4 = QtWidgets.QLabel(Form)
self.label_4.setGeometry(QtCore.QRect(337, 450, 75, 24))
self.label_4.setStyleSheet("font: 10pt \"黑体\";\n"
"color: rgb(85, 0, 0);")
self.label_4.setObjectName("label_4")
self.label_7 = QtWidgets.QLabel(Form)
self.label_7.setGeometry(QtCore.QRect(50, 450, 75, 24))
self.label_7.setStyleSheet("font: 10pt \"黑体\";\n"
"color: rgb(85, 0, 0);")
self.label_7.setObjectName("label_7")
self.label_3 = QtWidgets.QLabel(Form)
self.label_3.setGeometry(QtCore.QRect(140, 90, 331, 61))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth())
self.label_3.setSizePolicy(sizePolicy)
self.label_3.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.label_3.setStyleSheet("background-image: url(:/text/1.jpeg);")
self.label_3.setTextFormat(QtCore.Qt.AutoText)
self.label_3.setObjectName("label_3")
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(100, 200, 171, 41))
self.pushButton.setMouseTracking(False)
self.pushButton.setFocusPolicy(QtCore.Qt.WheelFocus)
self.pushButton.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.pushButton.setLayoutDirection(QtCore.Qt.LeftToRight)
self.pushButton.setAutoFillBackground(False)
self.pushButton.setStyleSheet("color: rgb(85, 0, 0);\n"
"font: 14pt \"黑体\";\n"
"background-image: url(:/text/1.jpeg);")
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(":/down/IST_18279_33769.png"), QtGui.QIcon.Normal, QtGui.QIcon.On)
self.pushButton.setIcon(icon1)
self.pushButton.setIconSize(QtCore.QSize(65, 65))
self.pushButton.setCheckable(False)
self.pushButton.setAutoRepeatDelay(300)
self.pushButton.setObjectName("pushButton")
self.toolButton_2 = QtWidgets.QToolButton(Form)
self.toolButton_2.setGeometry(QtCore.QRect(70, 0, 71, 21))
self.toolButton_2.setStyleSheet("background-image: url(:/text/1.jpeg);")
self.toolButton_2.setObjectName("toolButton_2")
self.toolButton = QtWidgets.QToolButton(Form)
self.toolButton.setGeometry(QtCore.QRect(0, 0, 71, 21))
self.toolButton.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
self.toolButton.setLayoutDirection(QtCore.Qt.LeftToRight)
self.toolButton.setStyleSheet("background-image: url(:/text/1.jpeg);")
self.toolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.toolButton.setObjectName("toolButton")
self.pushButton_2 = QtWidgets.QPushButton(Form)
self.pushButton_2.setGeometry(QtCore.QRect(370, 200, 171, 41))
self.pushButton_2.setMouseTracking(False)
self.pushButton_2.setFocusPolicy(QtCore.Qt.WheelFocus)
self.pushButton_2.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.pushButton_2.setLayoutDirection(QtCore.Qt.LeftToRight)
self.pushButton_2.setAutoFillBackground(False)
self.pushButton_2.setStyleSheet("color: rgb(85, 0, 0);\n"
"font: 14pt \"黑体\";\n"
"background-image: url(:/text/1.jpeg);")
self.pushButton_2.setIcon(icon1)
self.pushButton_2.setIconSize(QtCore.QSize(65, 65))
self.pushButton_2.setCheckable(False)
self.pushButton_2.setAutoRepeatDelay(300)
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(Form)
self.pushButton_3.setGeometry(QtCore.QRect(220, 280, 171, 41))
self.pushButton_3.setMouseTracking(False)
self.pushButton_3.setFocusPolicy(QtCore.Qt.WheelFocus)
self.pushButton_3.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.pushButton_3.setLayoutDirection(QtCore.Qt.LeftToRight)
self.pushButton_3.setAutoFillBackground(False)
self.pushButton_3.setStyleSheet("color: rgb(85, 0, 0);\n"
"font: 14pt \"黑体\";\n"
"background-image: url(:/text/1.jpeg);")
self.pushButton_3.setIcon(icon1)
self.pushButton_3.setIconSize(QtCore.QSize(65, 65))
self.pushButton_3.setCheckable(False)
self.pushButton_3.setAutoRepeatDelay(300)
self.pushButton_3.setObjectName("pushButton_3")
self.dateEdit = QtWidgets.QDateEdit(Form)
self.dateEdit.setGeometry(QtCore.QRect(134, 440, 110, 41))
self.dateEdit.setCalendarPopup(True)
self.dateEdit.setObjectName("dateEdit")
self.dateEdit_2 = QtWidgets.QDateEdit(Form)
self.dateEdit_2.setGeometry(QtCore.QRect(424, 440, 110, 41))
self.dateEdit_2.setCalendarPopup(True)
self.dateEdit_2.setObjectName("dateEdit_2")
self.toolButton_3 = QtWidgets.QToolButton(Form)
self.toolButton_3.setGeometry(QtCore.QRect(140, 0, 111, 21))
self.toolButton_3.setStyleSheet("background-image: url(:/text/1.jpeg);")
self.toolButton_3.setObjectName("toolButton_3")
self.pushButton_4 = QtWidgets.QPushButton(Form)
self.pushButton_4.setGeometry(QtCore.QRect(100, 360, 171, 41))
self.pushButton_4.setMouseTracking(False)
self.pushButton_4.setFocusPolicy(QtCore.Qt.WheelFocus)
self.pushButton_4.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.pushButton_4.setLayoutDirection(QtCore.Qt.LeftToRight)
self.pushButton_4.setAutoFillBackground(False)
self.pushButton_4.setStyleSheet("color: rgb(85, 0, 0);\n"
"font: 14pt \"黑体\";\n"
"background-image: url(:/text/1.jpeg);")
self.pushButton_4.setIcon(icon1)
self.pushButton_4.setIconSize(QtCore.QSize(65, 65))
self.pushButton_4.setCheckable(False)
self.pushButton_4.setAutoRepeatDelay(300)
self.pushButton_4.setObjectName("pushButton_4")
self.pushButton_5 = QtWidgets.QPushButton(Form)
self.pushButton_5.setGeometry(QtCore.QRect(370, 360, 171, 41))
self.pushButton_5.setMouseTracking(False)
self.pushButton_5.setFocusPolicy(QtCore.Qt.WheelFocus)
self.pushButton_5.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.pushButton_5.setLayoutDirection(QtCore.Qt.LeftToRight)
self.pushButton_5.setAutoFillBackground(False)
self.pushButton_5.setStyleSheet("color: rgb(85, 0, 0);\n"
"font: 14pt \"黑体\";\n"
"background-image: url(:/text/1.jpeg);")
self.pushButton_5.setIcon(icon1)
self.pushButton_5.setIconSize(QtCore.QSize(65, 65))
self.pushButton_5.setCheckable(False)
self.pushButton_5.setAutoRepeatDelay(300)
self.pushButton_5.setObjectName("pushButton_5")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "文件下载系统"))
self.label_4.setText(_translate("Form", "结束时间"))
self.label_7.setText(_translate("Form", "开始时间"))
self.label_3.setText(_translate("Form", "<html><head/><body><p align=\"center\"><span style=\" font-size:14pt; font-weight:600; color:#550000;\">欢迎进入数据下载界面</span></p></body></html>"))
self.pushButton.setText(_translate("Form", "月报一批"))
self.toolButton_2.setText(_translate("Form", "注意事项"))
self.toolButton.setText(_translate("Form", "功能介绍"))
self.pushButton_2.setText(_translate("Form", "月报二批"))
self.pushButton_3.setText(_translate("Form", "日报下载"))
self.dateEdit.setDisplayFormat(_translate("Form", "yyyy-MM-dd"))
self.dateEdit_2.setDisplayFormat(_translate("Form", "yyyy-MM-dd"))
self.toolButton_3.setText(_translate("Form", "异动说明下载"))
self.pushButton_4.setText(_translate("Form", "季报一批"))
self.pushButton_5.setText(_translate("Form", "季报二批"))
import back_rc
import download_rc
import pwd_rc
import re_rc
import text_rc
import unzip_rc
2、异动说明下载界面
(1)GUI显示
(2)代码
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(600, 600)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy