Python企业编码生成系统之系统主要函数设计详解

作者:cakincqm 时间:2021-05-11 20:43:49 

本文实例讲述了Python企业编码生成系统之系统主要函数设计。分享给大家供大家参考,具体如下:

一 主要函数功能描述

函数功能
mkdir判断保存防伪码或补充防伪码的文件夹是否存在,如果不存在则建立文件夹。
openfile读取文本文件函数,主要读取保存产品编码和生成数量的文件mrsoft.mri,以及用户选择的已生成的编码文件。
inputbox输入验证判断函数,根据参数判断输入的是哪种类型,是否合法
wfile编码输出显示函数,通过屏幕输出和文件输出两种方式输出生成的防伪码信息。

二 mkdir函数实现


# 创建文件夹函数
def mkdir(path):
 isexists = os.path.exists(path) # 判断文件夹路径是否存在
 if not isexists: # 如果文件夹路径不存在
   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程序设计有所帮助。

来源:https://blog.csdn.net/chengqiuming/article/details/92168741

标签:Python,编码生成
0
投稿

猜你喜欢

  • python 实现12bit灰度图像映射到8bit显示的方法

    2022-11-22 01:37:32
  • Python判断文本中消息重复次数的方法

    2022-11-12 10:00:54
  • python中yaml配置文件模块的使用详解

    2021-06-05 08:06:45
  • Oracle入侵常用操作命令整理

    2009-03-04 11:11:00
  • 加固SQL参数与存储过程

    2012-03-12 19:44:08
  • python本地文件服务器实例教程

    2022-07-31 16:38:17
  • Flask框架请求钩子与request请求对象用法实例分析

    2021-11-23 20:14:48
  • asp显示左边的n个字符自动识别汉字的函数

    2007-09-13 12:16:00
  • 在Linux中通过Python脚本访问mdb数据库的方法

    2023-12-18 16:23:14
  • apache+php+mysql安装配置方法小结

    2023-11-11 23:29:31
  • ASP使用xmlhttp定时触发事件

    2008-08-19 18:09:00
  • Excel VBA连接并操作Oracle

    2009-08-08 22:58:00
  • 纯JSP+DWR实现3 级联动下拉选择菜单实现技巧

    2023-07-10 12:52:40
  • 解决python3 中的np.load编码问题

    2021-12-19 20:28:27
  • 基于Python绘制520表白代码

    2021-06-10 08:14:44
  • ASP连接MySQL数据库代码示例2

    2010-03-08 14:26:00
  • 怎样使用 SQL Server 数据库嵌套子查询

    2009-02-05 15:26:00
  • Python中Parser的超详细用法实例

    2022-05-02 10:16:30
  • 利用JSP的思想来做ASP

    2005-09-09 10:10:00
  • python2 与 python3 实现共存的方法

    2023-06-13 23:56:29
  • asp之家 网络编程 m.aspxhome.com