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标准异常和异常处理详解
Feb 02 Python
python图片验证码生成代码
Jul 02 Python
Python编程实现双击更新所有已安装python模块的方法
Jun 05 Python
python实现决策树分类(2)
Aug 30 Python
python学习开发mock接口
Apr 28 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
Jul 11 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
Nov 19 Python
Python 实现try重新执行
Dec 21 Python
使用Keras构造简单的CNN网络实例
Jun 29 Python
Windows下Sqlmap环境安装教程详解
Aug 04 Python
看看如何用Python绘制小米新版天价logo
Apr 20 Python
Python测试框架pytest高阶用法全面详解
Jun 01 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
php生成略缩图代码
2012/07/16 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
经常用到的JavasScript事件的翻译
2007/04/09 Javascript
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
2017/01/08 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
js中apply与call简单用法详解
2017/11/06 Javascript
JavaScript中Object值合并方法详解
2017/12/22 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
浅谈Angular 观察者模式理解
2018/11/01 Javascript
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
修改NPM全局模式的默认安装路径的方法
2020/12/15 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
Python中的默认参数详解
2015/06/24 Python
python3.6编写的单元测试示例
2019/08/17 Python
Python标准库itertools的使用方法
2020/01/17 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
在ipython notebook中使用argparse方式
2020/04/20 Python
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
英国领先的在线旅游和休闲零售商:lastminute.com
2019/01/23 全球购物
21岁生日感言
2014/02/27 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
财务工作检讨书
2014/10/29 职场文书
嘉宾邀请函
2015/01/31 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书
推广普通话的宣传语
2015/07/13 职场文书