一 主要函式功能描述函式
功能mkdir
判斷儲存防偽碼或補充防偽碼的資料夾是否存在,如果不存在則建立資料夾。
openfile
讀取文字檔案函式,主要讀取儲存產品編碼和生成數量的檔案mrsoft.mri,以及使用者選擇的已生成的編碼檔案。
inputbox
輸入驗證判斷函式,根據引數判斷輸入的是哪種型別,是否合法
wfile
編碼輸出顯示函式,通過螢幕輸出和檔案輸出兩種方式輸出生成的防偽碼資訊。
二 mkdir函式實現
# 建立資料夾函式
def mkdir(path):
i***ists = os.path.exists(path) # 判斷資料夾路徑是否存在
if not i***ists: # 如果資料夾路徑不存在
os.mkdir(path) # 建立要建立的資料夾
三 openfile函式實現
# 讀取檔案內容函式
def openfile(filename):
f = open(filename) # 開啟指定檔案
fllist = f.read() # 讀取檔案內容
f.close() # 關閉檔案
return fllist # 返回讀取的檔案內容
四 inputbox函式實現
# 輸入驗證函式,showstr為input函式提供動態輸入提示文字,showorder提供驗證方式,length提供要求輸入資料的長度
def inputbox(showstr, showorder, length):
instr = input(showstr) # 使用input函式要求使用者輸入資訊,showstr為輸入提示文字
if len(instr) != 0: # 輸入資料的長度不為零
# 根據輸入資料的要求,分成三種驗證方式驗證,1:數字,不限位數;2:字母;3:數字且有位數要求
if showorder == 1: # 驗證方式 ,數字格式,不限位數,大於零的整數
if str.isdigit(instr): # 驗證是否為數字
if instr == 0: # 驗證數字是否為0,如果是,要求重新輸入,返回值為0
print("\033[1;31;40m 輸入為零,請重新輸入!!\033[0m") # 要求重新輸入,返回值為「0」
return "0" # 函式返回值為「0」,為什麼返回值為「0」呢?讀者思考一下
else: # 如果輸入正確,返回輸入的資料給返回值
return instr # 將輸入的資料傳給函式返回值
else: # 如果輸入不是數字,要求使用者重新輸入,函式返回值為「0」
print("\033[1;31;40m輸入非法,請重新輸入!!\033[0m") # 要求使用者重新輸入
return "0" # 函式返回值為「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 # 將函式返回值設定為輸入的字母
else: # 如果輸入不是字母
print("\033[1;31;40m輸入非法,請重新輸入!!\033[0m") # 要求重新輸入
return "0" # 返回值為「0」
if showorder == 3: # 驗證方式3 ,要求數字格式,且輸入數字位數有要求
if str.isdigit(instr): # 驗證是否為數字
if len(instr) != length: # 驗證輸入數字是否為要求長度位數,如果不是3位數字,則要求重新輸入
print("\033[1;31;40m必須輸入" + str(length) + "個數字,請重新輸入!!\033[0m") # 要求重新輸入
return "0" # 返回值為「0」
else: # 輸入數字滿足要求,設定函式返回值為輸入資訊
return instr # 設定函式返回值為輸入資訊
else: # 如果輸入不是數字
print("\033[1;31;40m輸入非法,請重新輸入!!\033[0m") # 提示輸入非法,要求重新輸入
return "0" # 函式返回值為「0」
else: # 如果沒有輸入任何內容,即輸入為空
print("\033[1;31;40m輸入為空,請重新輸入!!\033[0m") # 提示輸入為空,要求重新輸入
return "0" # 函式返回值為「0」
五 wfile函式實現
# 實現螢幕輸出和檔案輸出編碼資訊函式,# sstr引數為輸出防偽碼資料, sfile為輸出的檔名稱
# typeis設定輸出完成後是否通過資訊框提示, smsg為資訊提示框的提示文字,datapath 儲存防偽碼的資料夾
def wfile(sstr, sfile, typeis, smsg, datapath):
mkdir(datapath) # 呼叫該函式建立資料夾
datafile = datapath + "\\" + sfile # 設定儲存防偽碼的檔案(包含路徑)
file = open(datafile, 'w') # 開啟儲存防偽碼的檔案,如果檔案不存在,則建立該檔案
wrlist = sstr # 將防偽碼資訊賦值給wrlist
pdata = "" # 清空變數pdata,pdata儲存螢幕輸出的防偽碼資訊
wdata = "" # 清空變數 wdata , wdata 儲存儲存到文字檔案的防偽碼資訊
for i in range(len(wrlist)): # 按條迴圈讀取防偽碼資料
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」,不現顯示
# 顯示「輸出完成」的資訊提示框。顯示資訊包含防偽資訊碼的儲存路徑
tkinter.messagebox.showinfo("提示", smsg + str(len(randstr)) + "\n 防偽碼檔案存放位置:" + datafile)
root.withdraw() # 關閉輔助視窗
Python企業編碼生成系統之系統主要函式設計詳解
mkdir函式實現 建立資料夾函式 def mkdir path i ists os.path.exists path 判斷資料夾路徑是否存在 if not i ists 如果資料夾路徑不存在 os.mkdir path 建立要建立的資料夾 openfile函式實現 讀取檔案內容函式 def ope...
Python企業編碼生成系統總體系統設計概述
一 系統功能結構 二 系統主介面 三 認識各種編碼 1 6位數字防偽編碼 它是一種簡單的數字防偽碼,由6位組成。例如 355059 449982 763006 832787 090035 778851 2 9位系列產品數字防偽編碼 多個產品系列的防偽碼,前3位表示分類,後6位表示具體產品編碼。例如 ...
企業編碼生成系統智慧型批量生成帶資料分析功能的防偽碼
一 生成含資料分析功能防偽編碼函式,引數schoice設定輸出的檔名稱 def scode5 schoice default dir r mrsoft.mri 設定預設開啟的檔名稱 開啟檔案選擇對話方塊,指定開啟的檔名稱為 mrsoft.mri 擴充套件名為 mri 可以使用記事本開啟和編輯 fil...