Python企業(yè)編碼生成系統(tǒng)之系統(tǒng)主要函數(shù)設計詳解
本文實例講述了Python企業(yè)編碼生成系統(tǒng)之系統(tǒng)主要函數(shù)設計。分享給大家供大家參考,具體如下:
一 主要函數(shù)功能描述
| 函數(shù) | 功能 |
|---|---|
| mkdir | 判斷保存防偽碼或補充防偽碼的文件夾是否存在,如果不存在則建立文件夾。 |
| openfile | 讀取文本文件函數(shù),主要讀取保存產(chǎn)品編碼和生成數(shù)量的文件mrsoft.mri,以及用戶選擇的已生成的編碼文件。 |
| inputbox | 輸入驗證判斷函數(shù),根據(jù)參數(shù)判斷輸入的是哪種類型,是否合法 |
| wfile | 編碼輸出顯示函數(shù),通過屏幕輸出和文件輸出兩種方式輸出生成的防偽碼信息。 |
二 mkdir函數(shù)實現(xiàn)
# 創(chuàng)建文件夾函數(shù)
def mkdir(path):
isexists = os.path.exists(path) # 判斷文件夾路徑是否存在
if not isexists: # 如果文件夾路徑不存在
os.mkdir(path) # 創(chuàng)建要創(chuàng)建的文件夾
三 openfile函數(shù)實現(xiàn)
# 讀取文件內(nèi)容函數(shù) def openfile(filename): f = open(filename) # 打開指定文件 fllist = f.read() # 讀取文件內(nèi)容 f.close() # 關閉文件 return fllist # 返回讀取的文件內(nèi)容
四 inputbox函數(shù)實現(xiàn)
# 輸入驗證函數(shù),showstr為input函數(shù)提供動態(tài)輸入提示文字,showorder提供驗證方式,length提供要求輸入數(shù)據(jù)的長度
def inputbox(showstr, showorder, length):
instr = input(showstr) # 使用input函數(shù)要求用戶輸入信息,showstr為輸入提示文字
if len(instr) != 0: # 輸入數(shù)據(jù)的長度不為零
# 根據(jù)輸入數(shù)據(jù)的要求,分成三種驗證方式驗證,1:數(shù)字,不限位數(shù);2:字母;3:數(shù)字且有位數(shù)要求
if showorder == 1: # 驗證方式 ,數(shù)字格式,不限位數(shù),大于零的整數(shù)
if str.isdigit(instr): # 驗證是否為數(shù)字
if instr == 0: # 驗證數(shù)字是否為0,如果是,要求重新輸入,返回值為0
print("\033[1;31;40m 輸入為零,請重新輸入??!\033[0m") # 要求重新輸入,返回值為“0”
return "0" # 函數(shù)返回值為“0”,為什么返回值為“0”呢?讀者思考一下
else: # 如果輸入正確,返回輸入的數(shù)據(jù)給返回值
return instr # 將輸入的數(shù)據(jù)傳給函數(shù)返回值
else: # 如果輸入不是數(shù)字,要求用戶重新輸入,函數(shù)返回值為“0”
print("\033[1;31;40m輸入非法,請重新輸入??!\033[0m") # 要求用戶重新輸入
return "0" # 函數(shù)返回值為“0”
if showorder == 2: # 驗證方式2 ,要求字母格式,且是三個字母
if str.isalpha(instr): # 判斷輸入是否為字母
if len(instr) != length: # 判斷輸入的是否為三個字母,如果不是,則要求重新輸入,返回值為“0”
print("\033[1;31;40m必須輸入三個字母,請重新輸入??!\033[0m") # 要求重新輸入
return "0" # 返回值為“0”
else: # 如果輸入是三個字母,返回輸入的字母
return instr # 將函數(shù)返回值設置為輸入的字母
else: # 如果輸入不是字母
print("\033[1;31;40m輸入非法,請重新輸入??!\033[0m") # 要求重新輸入
return "0" # 返回值為“0”
if showorder == 3: # 驗證方式3 ,要求數(shù)字格式,且輸入數(shù)字位數(shù)有要求
if str.isdigit(instr): # 驗證是否為數(shù)字
if len(instr) != length: # 驗證輸入數(shù)字是否為要求長度位數(shù),如果不是3位數(shù)字,則要求重新輸入
print("\033[1;31;40m必須輸入" + str(length) + "個數(shù)字,請重新輸入!!\033[0m") # 要求重新輸入
return "0" # 返回值為“0”
else: # 輸入數(shù)字滿足要求,設置函數(shù)返回值為輸入信息
return instr # 設置函數(shù)返回值為輸入信息
else: # 如果輸入不是數(shù)字
print("\033[1;31;40m輸入非法,請重新輸入??!\033[0m") # 提示輸入非法,要求重新輸入
return "0" # 函數(shù)返回值為“0”
else: # 如果沒有輸入任何內(nèi)容,即輸入為空
print("\033[1;31;40m輸入為空,請重新輸入?。033[0m") # 提示輸入為空,要求重新輸入
return "0" # 函數(shù)返回值為“0”
五 wfile函數(shù)實現(xiàn)
# 實現(xiàn)屏幕輸出和文件輸出編碼信息函數(shù),# sstr參數(shù)為輸出防偽碼數(shù)據(jù), sfile為輸出的文件名稱
# typeis設置輸出完成后是否通過信息框提示, smsg為信息提示框的提示文字,datapath 保存防偽碼的文件夾
def wfile(sstr, sfile, typeis, smsg, datapath):
mkdir(datapath) # 調(diào)用該函數(shù)創(chuàng)建文件夾
datafile = datapath + "\\" + sfile # 設置保存防偽碼的文件(包含路徑)
file = open(datafile, 'w') # 打開保存防偽碼的文件,如果文件不存在,則創(chuàng)建該文件
wrlist = sstr # 將防偽碼信息賦值給wrlist
pdata = "" # 清空變量pdata,pdata存儲屏幕輸出的防偽碼信息
wdata = "" # 清空變量 wdata , wdata 存儲保存到文本文件的防偽碼信息
for i in range(len(wrlist)): # 按條循環(huán)讀取防偽碼數(shù)據(jù)
wdata = str(wrlist[i].replace('[', '')).replace(']', '') # 去掉字符的中括號
wdata = wdata.replace(''''','').replace(''''', '') # 去掉字符的引號
file.write(str(wdata)) # 寫入保存防偽碼的文件
pdata = pdata + wdata # 將單條防偽碼存儲到pdata 變量
file.close() # 關閉文件
print("\033[1;31m" + pdata + "\033[0m") # 屏幕輸出生成的防偽碼信息
if typeis != "no": # 是否顯示“輸出完成”的信息提示框。如果typeis的值為“no”,不現(xiàn)顯示
# 顯示“輸出完成”的信息提示框。顯示信息包含防偽信息碼的保存路徑
tkinter.messagebox.showinfo("提示", smsg + str(len(randstr)) + "\n 防偽碼文件存放位置:" + datafile)
root.withdraw() # 關閉輔助窗口
更多關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python編碼操作技巧總結》、《Python圖片操作技巧總結》、《Python數(shù)據(jù)結構與算法教程》、《Python Socket編程技巧總結》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
相關文章
python GUI庫圖形界面開發(fā)之PyQt5表格控件QTableView詳細使用方法與實例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5表格控件QTableView詳細使用方法與實例,需要的朋友可以參考下2020-03-03
python使用openpyxl庫讀取Excel文件數(shù)據(jù)
openpyxl是一個功能強大的庫,可以輕松地實現(xiàn)Excel文件的讀寫操作,本文將介紹如何使用openpyxl庫讀取Excel文件中的數(shù)據(jù),感興趣的小伙伴可以了解下2023-11-11

