最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+PyQt實現(xiàn)指定名稱文件批量生成器

 更新時間:2025年07月28日 09:26:14   作者:Goona_  
平常我們在辦公時,經(jīng)常被要求批量創(chuàng)建各種文件(夾),且文件(夾)名稱已被指定,下面我們就來看看如何使用Python實現(xiàn)批量生成文件名,希望對大家有所幫助

一、引言

因辦公要求,經(jīng)常需要批量創(chuàng)建各種文件(夾),且文件(夾)名稱已被指定(如為全公司/部門所有工作人員創(chuàng)建一個以本人姓名命名的文件夾,用于存放個人相關(guān)資料等)。人數(shù)少還好說,人數(shù)大就是一個稍微復(fù)雜的問題了。當然這個問題也可以通過“暴力”的方式解決(具體怎么“暴力”,我就不多贅述了),但是工作效率會大大折扣。所以,為極大提高辦公效率,就謀生了這個想法。

二、GUI界面設(shè)計

使用PyQt5進行界面的搭建,最終界面如下:

1.第一步:確定被批量創(chuàng)建文件(夾)的名稱

通過兩個單選按鈕來實現(xiàn):前者記為radio button,表示批量生成的文件(夾)具有一定的規(guī)律性,即label中的提示:文件名稱為按順序排列的數(shù)字、字母等如批量生成100個文件(夾),文件(夾)的名稱是1-100),單擊后radio button后,會顯示出兩個line edit,可以分別輸入文件(夾)名稱的起始值和終止值,而且右邊的無規(guī)律性提示也會消失;

后者記為radio button2,表示批量生成的文件(夾)不具有一定的規(guī)律性,即label中的提示:文件名稱可自定義(如批量創(chuàng)建以“劉一”、“陳二”、“張三”、“李四”、“王五”、“趙六”、“孫七”、“周八”、“吳九”、“鄭十”......等為名稱的文件(夾)),單擊radio button2后,會顯示出一個text edit,默認值是“劉一”、“陳二”、“張三”、“李四”、“王五”、“趙六”,可以直接將其刪去,然后將想要的文件(夾)名稱輸入(粘貼)到text edit中即可,但要注意寫入要求:所有文件名稱按行排列(即每行僅有一個文件(夾)名),而且左邊的有規(guī)律性提示也會消失。

2.第二步:確定被批量創(chuàng)建的文件類型

默認是批量生成文件夾(也是最常用的),在下拉列表中還包含了文本文檔.txt、DOC文檔.doc、DOCX文檔.docx、PPT演示文稿.ppt、PPTX演示文稿.pptx、XLS工作表.xls、XLSX工作表.xlsx等多種類型。

3.第三步:批量創(chuàng)建所需的所有文件(夾)

點擊“開始生成”按鈕,即可秒秒鐘批量生成所需所有文件(夾)。當然,這里還放了“退出系統(tǒng)”的按鈕,供退出程序。

最后批量產(chǎn)生的文件(夾)如下:

可以看到,產(chǎn)生大量文件(夾)是一瞬間的事兒,哪怕再多都不在話下,也都可以秒秒鐘做到(為避免冗余性,批量產(chǎn)生其他文件類型這里就不做演示了)!

4.一些使用提示

在第二步選擇規(guī)律性文件名稱時,若輸入不符合要求,點擊“開始生成”按鈕,會有如下提示。

5.界面設(shè)計jiemian.py

最后附上通過pyuic5產(chǎn)生的GUI界面代碼jiemian.py:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'jiemian.ui'
#
# Created by: PyQt5 UI code generator 5.15.11
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.setEnabled(True)
        Form.resize(800, 390)
        Form.setMinimumSize(QtCore.QSize(800, 390))
        Form.setMaximumSize(QtCore.QSize(800, 390))
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/image1.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        Form.setWindowIcon(icon)
        self.label = QtWidgets.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(40, 70, 201, 21))
        font = QtGui.QFont()
        font.setFamily("Adobe Arabic")
        font.setPointSize(12)
        font.setBold(False)
        font.setWeight(50)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.label_4 = QtWidgets.QLabel(Form)
        self.label_4.setGeometry(QtCore.QRect(40, 320, 261, 21))
        font = QtGui.QFont()
        font.setFamily("Adobe Arabic")
        font.setPointSize(12)
        font.setBold(False)
        font.setWeight(50)
        self.label_4.setFont(font)
        self.label_4.setObjectName("label_4")
        self.comboBox = QtWidgets.QComboBox(Form)
        self.comboBox.setGeometry(QtCore.QRect(130, 350, 201, 22))
        self.comboBox.setObjectName("comboBox")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.groupBox = QtWidgets.QGroupBox(Form)
        self.groupBox.setGeometry(QtCore.QRect(30, 60, 751, 241))
        self.groupBox.setAutoFillBackground(False)
        self.groupBox.setTitle("")
        self.groupBox.setFlat(False)
        self.groupBox.setObjectName("groupBox")
        self.label_3 = QtWidgets.QLabel(self.groupBox)
        self.label_3.setGeometry(QtCore.QRect(100, 180, 91, 16))
        self.label_3.setObjectName("label_3")
        self.label_2 = QtWidgets.QLabel(self.groupBox)
        self.label_2.setEnabled(True)
        self.label_2.setGeometry(QtCore.QRect(100, 120, 91, 16))
        self.label_2.setAutoFillBackground(False)
        self.label_2.setInputMethodHints(QtCore.Qt.ImhNone)
        self.label_2.setObjectName("label_2")
        self.lineEdit_2 = QtWidgets.QLineEdit(self.groupBox)
        self.lineEdit_2.setGeometry(QtCore.QRect(100, 200, 113, 20))
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.lineEdit = QtWidgets.QLineEdit(self.groupBox)
        self.lineEdit.setGeometry(QtCore.QRect(100, 140, 113, 20))
        self.lineEdit.setObjectName("lineEdit")
        self.textEdit = QtWidgets.QTextEdit(self.groupBox)
        self.textEdit.setGeometry(QtCore.QRect(490, 70, 221, 151))
        self.textEdit.setObjectName("textEdit")
        self.label_6 = QtWidgets.QLabel(self.groupBox)
        self.label_6.setGeometry(QtCore.QRect(70, 80, 221, 31))
        self.label_6.setObjectName("label_6")
        self.radioButton_2 = QtWidgets.QRadioButton(self.groupBox)
        self.radioButton_2.setGeometry(QtCore.QRect(310, 50, 261, 16))
        self.radioButton_2.setObjectName("radioButton_2")
        self.radioButton = QtWidgets.QRadioButton(self.groupBox)
        self.radioButton.setGeometry(QtCore.QRect(50, 50, 171, 16))
        self.radioButton.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
        self.radioButton.setObjectName("radioButton")
        self.label_7 = QtWidgets.QLabel(self.groupBox)
        self.label_7.setGeometry(QtCore.QRect(330, 80, 151, 111))
        self.label_7.setObjectName("label_7")
        self.groupBox_3 = QtWidgets.QGroupBox(self.groupBox)
        self.groupBox_3.setGeometry(QtCore.QRect(40, 40, 241, 191))
        self.groupBox_3.setTitle("")
        self.groupBox_3.setObjectName("groupBox_3")
        self.groupBox_4 = QtWidgets.QGroupBox(self.groupBox)
        self.groupBox_4.setGeometry(QtCore.QRect(300, 40, 431, 191))
        self.groupBox_4.setTitle("")
        self.groupBox_4.setObjectName("groupBox_4")
        self.groupBox_4.raise_()
        self.groupBox_3.raise_()
        self.label_3.raise_()
        self.label_2.raise_()
        self.lineEdit_2.raise_()
        self.lineEdit.raise_()
        self.textEdit.raise_()
        self.label_6.raise_()
        self.radioButton_2.raise_()
        self.radioButton.raise_()
        self.label_7.raise_()
        self.groupBox_2 = QtWidgets.QGroupBox(Form)
        self.groupBox_2.setGeometry(QtCore.QRect(30, 310, 321, 71))
        self.groupBox_2.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
        self.groupBox_2.setTitle("")
        self.groupBox_2.setObjectName("groupBox_2")
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(460, 350, 131, 23))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(Form)
        self.pushButton_2.setGeometry(QtCore.QRect(610, 350, 131, 23))
        self.pushButton_2.setObjectName("pushButton_2")
        self.label_5 = QtWidgets.QLabel(Form)
        self.label_5.setGeometry(QtCore.QRect(490, 20, 141, 31))
        font = QtGui.QFont()
        font.setFamily("Adobe Arabic")
        font.setPointSize(16)
        self.label_5.setFont(font)
        self.label_5.setObjectName("label_5")
        self.groupBox_5 = QtWidgets.QGroupBox(Form)
        self.groupBox_5.setGeometry(QtCore.QRect(360, 310, 421, 71))
        self.groupBox_5.setTitle("")
        self.groupBox_5.setObjectName("groupBox_5")
        self.label_9 = QtWidgets.QLabel(self.groupBox_5)
        self.label_9.setGeometry(QtCore.QRect(10, 10, 231, 21))
        font = QtGui.QFont()
        font.setFamily("Adobe Arabic")
        font.setPointSize(12)
        font.setBold(False)
        font.setWeight(50)
        self.label_9.setFont(font)
        self.label_9.setObjectName("label_9")
        self.label_8 = QtWidgets.QLabel(Form)
        self.label_8.setGeometry(QtCore.QRect(260, 20, 251, 31))
        font = QtGui.QFont()
        font.setFamily("Adobe Arabic")
        font.setPointSize(18)
        font.setBold(False)
        font.setWeight(50)
        self.label_8.setFont(font)
        self.label_8.setObjectName("label_8")
        self.label_10 = QtWidgets.QLabel(Form)
        self.label_10.setGeometry(QtCore.QRect(570, 10, 71, 51))
        self.label_10.setText("")
        self.label_10.setPixmap(QtGui.QPixmap(":/image1.png"))
        self.label_10.setObjectName("label_10")
        self.groupBox_5.raise_()
        self.groupBox_2.raise_()
        self.groupBox.raise_()
        self.label.raise_()
        self.label_4.raise_()
        self.comboBox.raise_()
        self.pushButton.raise_()
        self.pushButton_2.raise_()
        self.label_5.raise_()
        self.label_8.raise_()
        self.label_10.raise_()

        self.retranslateUi(Form)
        self.pushButton_2.clicked.connect(Form.close) # type: ignore
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Batch_creation"))
        self.label.setText(_translate("Form", "一、請選擇文件名稱類型:"))
        self.label_4.setText(_translate("Form", "二、請選擇批量生成的文件類型:"))
        self.comboBox.setItemText(0, _translate("Form", "文件夾"))
        self.comboBox.setItemText(1, _translate("Form", "文本文檔.txt"))
        self.comboBox.setItemText(2, _translate("Form", "DOC文檔.doc"))
        self.comboBox.setItemText(3, _translate("Form", "DCOX文檔.docx"))
        self.comboBox.setItemText(4, _translate("Form", "PPT演示文稿.ppt"))
        self.comboBox.setItemText(5, _translate("Form", "PPTX演示文稿.pptx"))
        self.comboBox.setItemText(6, _translate("Form", "XLS工作表.xls"))
        self.comboBox.setItemText(7, _translate("Form", "XLSX工作表.xlsx"))
        self.label_3.setText(_translate("Form", "請輸入終止值:"))
        self.label_2.setText(_translate("Form", "請輸入起始值:"))
        self.textEdit.setHtml(_translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">劉一</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">陳二</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">張三</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">李四</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">王五</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">趙六</p></body></html>"))
        self.label_6.setText(_translate("Form", "文件名稱為按順序排列的數(shù)字、字母等"))
        self.radioButton_2.setText(_translate("Form", "文件名稱無規(guī)律"))
        self.radioButton.setText(_translate("Form", "文件名稱有規(guī)律"))
        self.label_7.setText(_translate("Form", "<html><head/><body><p>文件名稱可自定義,</p><p>將所有文件的名稱按行排列</p><p>(即每行僅有一個文件名),</p><p>復(fù)制粘貼到右框中即可</p></body></html>"))
        self.pushButton.setText(_translate("Form", "開始生成"))
        self.pushButton_2.setText(_translate("Form", "退出系統(tǒng)"))
        self.label_5.setText(_translate("Form", "Designed By"))
        self.label_9.setText(_translate("Form", "三、請選擇以下操作命令:"))
        self.label_8.setText(_translate("Form", "文件批量生成系統(tǒng)"))
import ziyuan_rc

三、主要程序詳解

1.導入所需模塊

import sys,os
from jiemian import *
from PyQt5.QtWidgets import QApplication, QWidget

from docx import Document
from pptx import Presentation
from openpyxl import Workbook
# 保持窗口大小和qtdesigner中的一致
from PyQt5 import QtCore
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)

不懂為啥需要導入Qtcore的,請看一鍵曝光:Python+PyQt實現(xiàn)的文件目錄。

2.對控件的顯示進行初始化設(shè)置

def __init__(self):
    super(QWidget, self).__init__()
    self.setupUi(self)
    # 初始化設(shè)置控件的顯示狀態(tài)
    self.label_2.setVisible(False)
    self.label_3.setVisible(False)
    self.label_6.setVisible(True)
    self.label_7.setVisible(True)
    self.lineEdit.setVisible(False)
    self.lineEdit_2.setVisible(False)
    self.textEdit.setVisible(False)

    # 綁定信號
    self.radioButton.clicked.connect(self.guilv_visible)
    self.radioButton_2.clicked.connect(self.wuguilv_visible)
    self.pushButton.clicked.connect(self.shengcheng)

因為在步驟二中有radio button和radio button2可供選擇,也可在兩個單選按鈕中進行隨意切換,所以為方便后續(xù)的隨意切換,這里提前進行了visible的設(shè)置

3.選擇性顯示與規(guī)律性相關(guān)的控件

def guilv_visible(self):
    # 選擇性顯示與規(guī)律性相關(guān)的控件
    if (self.radioButton.isChecked()) and (self.radioButton_2.isChecked()==False):
        self.label_2.setVisible(True)
        self.label_3.setVisible(True)
        self.label_6.setVisible(True)
        self.lineEdit.setVisible(True)
        self.lineEdit_2.setVisible(True)
        self.textEdit.setVisible(False)
        self.label_7.setVisible(False)

4.選擇性顯示與無規(guī)律性相關(guān)的控件

def wuguilv_visible(self):
    # 選擇性顯示與無規(guī)律性相關(guān)的控件
    if (self.radioButton.isChecked()==False) and (self.radioButton_2.isChecked()):
        self.label_2.setVisible(False)
        self.label_3.setVisible(False)
        self.label_6.setVisible(False)
        self.lineEdit.setVisible(False)
        self.lineEdit_2.setVisible(False)
        self.textEdit.setVisible(True)
        self.label_7.setVisible(True)

5.“開始生成”對應(yīng)的邏輯結(jié)構(gòu)與條件判斷

def shengcheng(self):
    if self.radioButton.isChecked(): # 選擇的是有規(guī)律性
        qishizhi = self.lineEdit.text()
        zhongzhizhi = self.lineEdit_2.text()
        if (len(qishizhi)==0):
            QtWidgets.QMessageBox.critical(self,'輸入錯誤','請檢查起始值是否為空!')
        else:
            if (len(zhongzhizhi)==0):
                QtWidgets.QMessageBox.critical(self,'輸入錯誤','請檢查終止值是否為空!')
            else:
                if (qishizhi.isdigit()) and (zhongzhizhi.isdigit()): # 文件名稱為數(shù)字
                    if int(qishizhi)>=int(zhongzhizhi):
                        QtWidgets.QMessageBox.critical(self, '輸入錯誤', '起始值應(yīng)小于終止值!')
                    else:
                        shuzi_list = [] # 數(shù)字列表
                        for i in range(int(qishizhi), int(zhongzhizhi)+1):
                            shuzi_list.append(str(i))
                        selected_index = self.comboBox.currentIndex()
                        wenjian_shengcheng(selected_index, shuzi_list)
                        QtWidgets.QMessageBox.information(self,'生成成功','文件生成成功,請查看!')
                elif (qishizhi.isalpha()) and (zhongzhizhi.isalpha()): # 文件名稱為字母
                    zimu_list = [] # 字母列表
                    if (len(qishizhi)==1) and (len(zhongzhizhi)==1):
                        # 65-90為26個大寫英文字母,97-122為26個小寫英文字母
                        qishizhi_ord = ord(qishizhi)
                        zhongzhizhi_ord = ord(zhongzhizhi)
                        if qishizhi_ord >= zhongzhizhi_ord:
                            QtWidgets.QMessageBox.critical(self, '輸入錯誤', '起始值應(yīng)小于終止值!')
                        else:
                            if (zhongzhizhi_ord - qishizhi_ord) in range(1, 26):
                                for i in range(qishizhi_ord, zhongzhizhi_ord+1):
                                    zimu_list.append(chr(i))
                                selected_index = self.comboBox.currentIndex()
                                wenjian_shengcheng(selected_index, zimu_list)
                                QtWidgets.QMessageBox.information(self,'生成成功','文件生成成功,請查看!')
                            else:
                                QtWidgets.QMessageBox.critical(self, '輸入錯誤', '請檢查起始值和終止值的大小寫類型!')
                    else:
                        QtWidgets.QMessageBox.critical(self, '輸入錯誤', '請檢查起始值和終止值是否為單字母!')
                else:
                    QtWidgets.QMessageBox.critical(self,'輸入錯誤','請檢查起始值和終止值的類型是否匹配!')
    else:
        if self.radioButton_2.isChecked(): # 選擇的是無規(guī)律性
            zidingyi = self.textEdit.toPlainText() # 讀取的默認類型為str
            mingcheng_list = zidingyi.split() #以換行符分割
            selected_index = self.comboBox.currentIndex()
            wenjian_shengcheng(selected_index,mingcheng_list)
            QtWidgets.QMessageBox.information(self,'生成成功','文件生成成功,請查看!')
        else: # 沒有選擇任何一種文件類型
            QtWidgets.QMessageBox.critical(self,'類

與“開始生成”按鈕綁定,主要通過len()判斷輸入是否為空以及輸入字母是否為單字母、通過獲取ASCII碼來判斷起始值和終止值字母大小寫不一致的情況以及起始字母小于終止字母的情況。

6.調(diào)用函數(shù),生成文件(夾)

def wenjian_shengcheng(suoyin,liebiao):
    # 產(chǎn)生不同種類的文件
    match suoyin:
        case 0: # 生成文件夾
            for i in liebiao:
                os.makedirs(i, exist_ok=True)
        case 1: # 生成文本文檔txt
            for i in liebiao:
                open(i+'.txt','w')
        case 2: # 生成doc文檔
            for i in liebiao:
                doc = Document()
                doc.save(i+'.doc')
        case 3: # 生成docx文檔
            for i in liebiao:
                doc = Document()
                doc.save(i+'.docx')
        case 4: # 生成PPT演示文稿
            for i in liebiao:
                prs = Presentation()
                prs.save(i+'.ppt')
        case 5: # 生成PPTX演示文稿
            for i in liebiao:
                prs = Presentation()
                prs.save(i+'.pptx')
        case 6: # 生成xls工作表
            for i in liebiao:
                wb = Workbook()
                ws = wb.active
                wb.save(i+'.xls')
        case 7: # 生成xlsx工作表
            for i in liebiao:
                wb = Workbook()
                ws = wb.active
                wb.save(i+'.xlsx')

四、總程序代碼Batch_creation.py

import sys,os
from jiemian import *
from PyQt5.QtWidgets import QApplication, QWidget

from docx import Document
from pptx import Presentation
from openpyxl import Workbook
# 保持窗口大小和qtdesigner中的一致
from PyQt5 import QtCore
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)

class login_interface(QWidget, Ui_Form):
    def __init__(self):
        super(QWidget, self).__init__()
        self.setupUi(self)
        # 初始化設(shè)置控件的顯示狀態(tài)
        self.label_2.setVisible(False)
        self.label_3.setVisible(False)
        self.label_6.setVisible(True)
        self.label_7.setVisible(True)
        self.lineEdit.setVisible(False)
        self.lineEdit_2.setVisible(False)
        self.textEdit.setVisible(False)

        # 綁定信號
        self.radioButton.clicked.connect(self.guilv_visible)
        self.radioButton_2.clicked.connect(self.wuguilv_visible)
        self.pushButton.clicked.connect(self.shengcheng)

    def guilv_visible(self):
        # 選擇性顯示與規(guī)律性相關(guān)的控件
        if (self.radioButton.isChecked()) and (self.radioButton_2.isChecked()==False):
            self.label_2.setVisible(True)
            self.label_3.setVisible(True)
            self.label_6.setVisible(True)
            self.lineEdit.setVisible(True)
            self.lineEdit_2.setVisible(True)
            self.textEdit.setVisible(False)
            self.label_7.setVisible(False)

    def wuguilv_visible(self):
        # 選擇性顯示與無規(guī)律性相關(guān)的控件
        if (self.radioButton.isChecked()==False) and (self.radioButton_2.isChecked()):
            self.label_2.setVisible(False)
            self.label_3.setVisible(False)
            self.label_6.setVisible(False)
            self.lineEdit.setVisible(False)
            self.lineEdit_2.setVisible(False)
            self.textEdit.setVisible(True)
            self.label_7.setVisible(True)

    def shengcheng(self):
        if self.radioButton.isChecked(): # 選擇的是有規(guī)律性
            qishizhi = self.lineEdit.text()
            zhongzhizhi = self.lineEdit_2.text()
            if (len(qishizhi)==0):
                QtWidgets.QMessageBox.critical(self,'輸入錯誤','請檢查起始值是否為空!')
            else:
                if (len(zhongzhizhi)==0):
                    QtWidgets.QMessageBox.critical(self,'輸入錯誤','請檢查終止值是否為空!')
                else:
                    if (qishizhi.isdigit()) and (zhongzhizhi.isdigit()): # 文件名稱為數(shù)字
                        if int(qishizhi)>=int(zhongzhizhi):
                            QtWidgets.QMessageBox.critical(self, '輸入錯誤', '起始值應(yīng)小于終止值!')
                        else:
                            shuzi_list = [] # 數(shù)字列表
                            for i in range(int(qishizhi), int(zhongzhizhi)+1):
                                shuzi_list.append(str(i))
                            selected_index = self.comboBox.currentIndex()
                            wenjian_shengcheng(selected_index, shuzi_list)
                            QtWidgets.QMessageBox.information(self,'生成成功','文件生成成功,請查看!')
                    elif (qishizhi.isalpha()) and (zhongzhizhi.isalpha()): # 文件名稱為字母
                        zimu_list = [] # 字母列表
                        if (len(qishizhi)==1) and (len(zhongzhizhi)==1):
                            # 65-90為26個大寫英文字母,97-122為26個小寫英文字母
                            qishizhi_ord = ord(qishizhi)
                            zhongzhizhi_ord = ord(zhongzhizhi)
                            if qishizhi_ord >= zhongzhizhi_ord:
                                QtWidgets.QMessageBox.critical(self, '輸入錯誤', '起始值應(yīng)小于終止值!')
                            else:
                                if (zhongzhizhi_ord - qishizhi_ord) in range(1, 26):
                                    for i in range(qishizhi_ord, zhongzhizhi_ord+1):
                                        zimu_list.append(chr(i))
                                    selected_index = self.comboBox.currentIndex()
                                    wenjian_shengcheng(selected_index, zimu_list)
                                    QtWidgets.QMessageBox.information(self,'生成成功','文件生成成功,請查看!')
                                else:
                                    QtWidgets.QMessageBox.critical(self, '輸入錯誤', '請檢查起始值和終止值的大小寫類型!')
                        else:
                            QtWidgets.QMessageBox.critical(self, '輸入錯誤', '請檢查起始值和終止值是否為單字母!')
                    else:
                        QtWidgets.QMessageBox.critical(self,'輸入錯誤','請檢查起始值和終止值的類型是否匹配!')
        else:
            if self.radioButton_2.isChecked(): # 選擇的是無規(guī)律性
                zidingyi = self.textEdit.toPlainText() # 讀取的默認類型為str
                mingcheng_list = zidingyi.split() #以換行符分割
                selected_index = self.comboBox.currentIndex()
                wenjian_shengcheng(selected_index,mingcheng_list)
                QtWidgets.QMessageBox.information(self,'生成成功','文件生成成功,請查看!')
            else: # 沒有選擇任何一種文件類型
                QtWidgets.QMessageBox.critical(self,'類型錯誤','請選擇一個文件名稱類型!')


def wenjian_shengcheng(suoyin,liebiao):
    # 產(chǎn)生不同種類的文件
    match suoyin:
        case 0: # 生成文件夾
            for i in liebiao:
                os.makedirs(i, exist_ok=True)
        case 1: # 生成文本文檔txt
            for i in liebiao:
                open(i+'.txt','w')
        case 2: # 生成doc文檔
            for i in liebiao:
                doc = Document()
                doc.save(i+'.doc')
        case 3: # 生成docx文檔
            for i in liebiao:
                doc = Document()
                doc.save(i+'.docx')
        case 4: # 生成PPT演示文稿
            for i in liebiao:
                prs = Presentation()
                prs.save(i+'.ppt')
        case 5: # 生成PPTX演示文稿
            for i in liebiao:
                prs = Presentation()
                prs.save(i+'.pptx')
        case 6: # 生成xls工作表
            for i in liebiao:
                wb = Workbook()
                ws = wb.active
                wb.save(i+'.xls')
        case 7: # 生成xlsx工作表
            for i in liebiao:
                wb = Workbook()
                ws = wb.active
                wb.save(i+'.xlsx')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = login_interface()
    w.show()
    sys.exit(app.exec_())

以上就是Python+PyQt實現(xiàn)指定名稱文件批量生成器的詳細內(nèi)容,更多關(guān)于Python批量生成文件名的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用Python實現(xiàn)在Windows下安裝Django

    使用Python實現(xiàn)在Windows下安裝Django

    今天小編就為大家分享一篇關(guān)于使用Python實現(xiàn)在Windows下安裝Django,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Matlab求解數(shù)組中的最大值及它所在的具體位置

    Matlab求解數(shù)組中的最大值及它所在的具體位置

    這篇文章主要介紹了Matlab求解數(shù)組中的最大值及它所在的具體位置,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Python中sys.argv用法圖文詳解

    Python中sys.argv用法圖文詳解

    很多剛剛接觸python的人來說,對于python中sys.argv[]往往不是很明白,下面這篇文章主要給大家介紹了關(guān)于Python中sys.argv用法的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Python比較兩個圖片相似度的方法

    Python比較兩個圖片相似度的方法

    這篇文章主要介紹了Python比較兩個圖片相似度的方法,涉及Python操作pil模塊實現(xiàn)圖片比較的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • python實現(xiàn)flappy bird游戲

    python實現(xiàn)flappy bird游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)flappy bird游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Python基礎(chǔ)語法中defaultdict的使用小結(jié)

    Python基礎(chǔ)語法中defaultdict的使用小結(jié)

    Python的defaultdict是collections模塊中提供的一種特殊的字典類型,它與普通的字典(dict)有著相似的功能,本文主要介紹了Python基礎(chǔ)語法中defaultdict的使用小結(jié),感興趣的可以了解一下
    2025-04-04
  • Python爬取阿拉丁統(tǒng)計信息過程圖解

    Python爬取阿拉丁統(tǒng)計信息過程圖解

    這篇文章主要介紹了Python爬取阿拉丁統(tǒng)計信息過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Pytorch之Variable的用法

    Pytorch之Variable的用法

    今天小編就為大家分享一篇Pytorch之Variable的用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python?第三方opencv庫實現(xiàn)圖像分割處理

    Python?第三方opencv庫實現(xiàn)圖像分割處理

    這篇文章主要介紹了Python?第三方opencv庫實現(xiàn)圖像分割處理,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • Python處理SSH和Redis的示例代碼詳解

    Python處理SSH和Redis的示例代碼詳解

    這篇文章主要為大家詳細介紹了Python中處理SSH和Redis的相關(guān)方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2026-01-01

最新評論

运城市| 宁波市| 富顺县| 凤冈县| 灵武市| 项城市| 崇义县| 黑河市| 敦化市| 阿城市| 兴山县| 正镶白旗| 阿鲁科尔沁旗| 德惠市| 万山特区| 大田县| 黎平县| 金秀| 吴江市| 内江市| 鹤峰县| 班玛县| 凤台县| 凌海市| 蒙自县| 通山县| 斗六市| 巴林左旗| 兴和县| 大理市| 邵东县| 兰西县| 新郑市| 鄂温| 东阳市| 广安市| 安龙县| 阿拉善左旗| 讷河市| 岚皋县| 北安市|