企業編碼生成系統系統主要函式設計

2021-09-24 11:52:46 字數 3751 閱讀 5767

一 主要函式功能描述函式

功能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...