<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      川小胖學python

      博客園 首頁 新隨筆 聯系 訂閱 管理

      cad最終出圖時,需要將圖紙轉成pdf文件,并附帶圖紙目錄提交。通常習慣以圖號命名pdf文件,例如“37MC620319CSTZLQ-023”,“37MC620319CSTZLQ-024”等。將cad批量打印為pdf已有不少插件,例如batchplot,賤人工具箱等。因此我需要的功能較為簡單,如下:

      • 批量打印時已經按照圖號順序轉為pdf,獲取每個pdf生成時間
      • 根據pdf生成時間自動排序,以圖號命名文件(用戶只需要輸入圖號前綴和圖號起始值)
      • 自動生成目錄。

      需要用到的包有os,sys,pyqt5,openpyxl。其中,pyqt5只是為了做個界面,方便其他人使用,如有編程基礎,可以舍棄界面提高啟動速度。啟動后界面如下:

      完整代碼如下:

        1 import os, sys, openpyxl
        2 from PyQt5.QtWidgets import QMainWindow, QWidget, QPushButton, QLabel, QHBoxLayout, QVBoxLayout, \
        3     QApplication, QStatusBar, QGroupBox, QLineEdit, QMessageBox, QProgressBar
        4 
        5 
        6 class Mywin(QMainWindow):
        7 
        8     def __init__(self):
        9         super(Mywin, self).__init__()
       10         self.step = 0  # 初始值設置為0,計劃后期改進時添加進度條,作為起始值
       11         self.initui()
       12 
       13     def initui(self):
       14         # self.pbar = QProgressBar() #計劃后期改進時添加進度條,
       15 
       16         self.setWindowTitle('川小胖工具箱')
       17         self.resize(340, 280)
       18         self.statusBar = QStatusBar()
       19         # self.statusBar.showMessage('內測版1.0',0)
       20         self.statusBar.showMessage('狀態欄')
       21         # ======重命名文件========
       22         groupbox_1 = QGroupBox('重命名文件', self)
       23 
       24         lineedit_start = QLineEdit()
       25         lineedit_pre = QLineEdit()
       26         lbl_pre = QLabel('設定前綴', self)
       27         lbl_start = QLabel('起始值', self)
       28         # lbl_pre.setMaximumWidth(130)
       29         # lbl_start.setMaximumWidth(50)
       30         _ = QLabel()
       31         btn_ok = QPushButton('重命名', self)
       32         hbx1 = QHBoxLayout()
       33         hbx1.addWidget(lbl_pre)
       34         hbx1.addWidget(lbl_start)
       35         hbx1.addWidget(_)
       36         hbx2 = QHBoxLayout()
       37         hbx2.addWidget(lineedit_pre)
       38         hbx2.addWidget(lineedit_start)
       39         hbx2.addWidget(btn_ok)
       40         vbx = QVBoxLayout()
       41         vbx.addLayout(hbx1)
       42         vbx.addLayout(hbx2)
       43         groupbox_1.setLayout(vbx)
       44 
       45         # ======添加生成目錄控件=====
       46         lbl = QLabel('使用說明:\n1.將所有pdf文件放入同一文件夾下;\n2.根據需要點擊下方按鈕。', self)
       47         lbl_no = QLabel('內測版0.1', self)
       48         btn_excel = QPushButton('轉為excel')
       49         btn_excel.setMaximumWidth(100)
       50         btn_txt = QPushButton('轉為txt')
       51         btn_txt.setMaximumWidth(100)
       52 
       53         # 設置布局
       54         hbx = QHBoxLayout()
       55         hbx.addWidget(btn_txt)
       56         hbx.addWidget(btn_excel)
       57         vbx = QVBoxLayout()
       58         vbx.addWidget(lbl)
       59         vbx.addLayout(hbx)
       60 
       61         groupbox_2 = QGroupBox('自動生成目錄', self)
       62         groupbox_2.setLayout(vbx)
       63 
       64         vbx1 = QVBoxLayout()
       65         vbx1.addWidget(groupbox_1)
       66         vbx1.addWidget(groupbox_2)
       67         vbx1.addWidget(lbl_no)
       68         widget = QWidget()
       69         widget.setLayout(vbx1)
       70         self.setCentralWidget(widget)
       71         # self.setLayout(vbx)
       72         # btn_ok.clicked.connect(self.action)
       73 
       74         #鏈接函數
       75         btn_ok.clicked.connect(lambda: self.rename(lineedit_pre, lineedit_start))
       76         btn_excel.clicked.connect(lambda: self.output_contents(btn_excel))
       77         btn_txt.clicked.connect(lambda: self.output_contents(btn_txt))
       78 
       79     def output_contents(self, btn):
       80         # =========1.獲取文件名,將所有pdf文件名存入列表中===========
       81         path = os.getcwd()  # 獲取程序所在文件夾路徑
       82         files = os.listdir(path)  # 獲取指定路徑下的所有文件的文件名稱
       83         list_pdf = [file.replace('.pdf', '').split('.') for file in files if file.split('.')[-1] in ['pdf']]
       84         # ==========2.判斷用戶選項,做出響應===========
       85         if btn.text() == '轉為txt':
       86             with open('目錄.txt', 'w', encoding='utf-8') as f:
       87                 for i in list_pdf:
       88                     f.write(' '.join(i) + '\n')
       89 
       90         elif btn.text() == '轉為excel':
       91             list_pdf.insert(0, ['序號', '圖名'])
       92             # =====創建對象=====
       93             wb = openpyxl.Workbook()  # W”要大寫
       94             worksheet = wb.active  # 獲取當前活躍的worksheet,默認就是第一個worksheet
       95             worksheet.title = "目錄"
       96             # =====寫入數據=====
       97             for i in list_pdf:
       98                 worksheet.append(i)
       99             # =====調整格式=====
      100             # for row in worksheet.rows:
      101             #     for cell in row:
      102             #         cell.alignment = Alignment(horizontal='center', vertical='center')
      103             wb.save(filename='目錄.xlsx')
      104 
      105     def rename(self, pre, start):
      106 
      107         for i in [pre, start]:  # 檢查是否有漏輸入項
      108             if i.text() == '':
      109                 QMessageBox.about(self, '參數缺失', '有參數尚未輸入,請檢查!')
      110                 i.setFocus()
      111                 break
      112         else:
      113             files = os.listdir(os.getcwd())  # 獲取指定路徑下的所有文件的文件名稱
      114             list_pdf = [file for file in files if file.split('.')[-1] in ['pdf']]
      115             list_time = [os.path.getctime(i) for i in list_pdf]
      116             new_list = sorted(list(zip(list_time, list_pdf)), key=lambda x: float(x[0]))
      117 
      118             start1 = int(start.text())
      119             pre1 = pre.text()
      120             end = start1 + len(list_pdf) + 1
      121             _ = list(zip([i for i in range(start1, end + 1)], new_list))
      122             for index, i in enumerate(_):
      123                 newname = str(index + 1) + '.' + pre1 + str(i[0]) + '.pdf'
      124                 os.rename(i[1][1], newname)
      125             QMessageBox.about(self, '完成', '所有文件已重命名!')
      126 
      127     def action(self):
      128         """測試功能"""
      129         pass
      130 
      131 
      132 if __name__ == '__main__':
      133     app = QApplication(sys.argv)
      134     win = Mywin()
      135     win.show()
      136     sys.exit(app.exec_())
      批量重命名及自動生成目錄

      打包為exe后,可能文件體積較大,可在".spec"文件中將不需要的包剔除。

       

      posted on 2021-01-04 15:18  川小胖學Python  閱讀(380)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲码国产精品高潮在线| 成年女人免费碰碰视频| 亚洲国产另类久久久精品| 国产精品夜夜春夜夜爽久久小| 国产一级特黄高清大片一| 吉安县| 国产成人精品一区二区三区| 国产91午夜福利精品| 亚洲精品无码日韩国产不卡av| 久久婷婷综合色丁香五月| 国产精品亚洲综合第一页| 久久婷婷成人综合色| 日韩精品一区二区三免费| 4hu44四虎www在线影院麻豆| 香蕉EEWW99国产精选免费| 国产乱码精品一区二区上| 91久久精品美女高潮不断| 人妻精品动漫h无码| 饥渴的熟妇张开腿呻吟视频 | 国产成人综合色视频精品| 欧美国产日韩在线三区| 蜜桃av无码免费看永久| 国产在线午夜不卡精品影院| 又大又黄又粗高潮免费| 九九热免费在线观看视频| 无码一区二区三区久久精品| AV教师一区高清| 日本中文字幕在线| 在线精品国产中文字幕| 夜夜添无码试看一区二区三区| 精品国产一区二区三区麻豆| 亚洲av乱码久久亚洲精品| 97精品尹人久久大香线蕉| 综合久青草视频在线观看| 亚洲熟女精品一区二区| 一区二区三区精品视频免费播放| japanese无码中文字幕| 综合色一色综合久久网| 在线看无码的免费网站| 人妻系列中文字幕精品| 色综合久久久久综合体桃花网|