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


Posted in Python onJuly 26, 2019

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
对于Python中线程问题的简单讲解
Apr 03 Python
Python优化技巧之利用ctypes提高执行速度
Sep 11 Python
Python多线程应用于自动化测试操作示例
Dec 06 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
Mar 20 Python
PyTorch搭建一维线性回归模型(二)
May 22 Python
画pytorch模型图,以及参数计算的方法
Aug 17 Python
Python实现数值积分方式
Nov 20 Python
使用Python将图片转正方形的两种方法实例代码详解
Apr 29 Python
sqlalchemy实现时间列自动更新教程
Sep 02 Python
如何使用Python调整图像大小
Sep 26 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
Jan 05 Python
pytorch MSELoss计算平均的实现方法
May 12 Python
python的re模块使用方法详解
Jul 26 #Python
Python企业编码生成系统总体系统设计概述
Jul 26 #Python
详解程序意外中断自动重启shell脚本(以Python为例)
Jul 26 #Python
python的pstuil模块使用方法总结
Jul 26 #Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 #Python
python通过http下载文件的方法详解
Jul 26 #Python
快速解决vue.js 模板和jinja 模板冲突的问题
Jul 26 #Python
You might like
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
使用php get_headers 判断URL是否有效的解决办法
2013/04/27 PHP
关于svn冲突的解决方法
2013/06/21 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
AngularJS中比较两个数组是否相同
2016/08/24 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
JS学习笔记之闭包小案例分析
2019/05/29 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
[01:36:19]Secret vs NB 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
python万年历实现代码 含运行结果
2017/05/20 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
2018/05/30 Python
python人民币小写转大写辅助工具
2018/06/20 Python
python开启debug模式的方法
2019/06/27 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
深入解析HTML5中的Blob对象的使用
2015/09/08 HTML / CSS
html5启动原生APP总结
2020/07/03 HTML / CSS
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
2014新年元旦活动策划方案
2014/02/18 职场文书
婚纱摄影师求职信
2014/03/07 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
党员志愿者活动方案
2014/08/28 职场文书
支行行长岗位职责
2015/02/15 职场文书
2015年公民道德宣传日活动总结
2015/03/23 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫