Python企业编码生成系统核心函数设计与实现

桃夭
桃夭
发布时间:2026-10-13| 3人浏览过
原创

本文详细解析Python企业编码生成系统的四个核心函数:mkdir用于自动创建保存目录,openfile负责读取配置与已生成编码文件,inputbox实现多模式输入验证(数字、字母及长度限制),wfile处理防伪码的屏幕显示与文件持久化存储。通过具体代码示例,展示如何构建稳定、可验证的编码生成逻辑,适用于需要批量生成并管理产品防伪码的场景。

本文详细介绍Python企业编码生成系统中几个关键函数的设计思路与实现细节,旨在为开发者提供参考。

系统主要函数功能概述

系统主要依赖四个核心函数来完成编码生成的全流程,包括目录管理、文件读取、输入验证及结果输出。

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

mkdir函数负责确保存储防伪码或补充信息的文件夹存在。若指定路径不存在,该函数会自动创建该文件夹,为后续文件写入提供基础环境。

mkdir函数:目录创建逻辑


# 创建文件夹函数
def mkdir(path):
  isexists = os.path.exists(path) # 判断文件夹路径是否存在
  if not isexists: # 如果文件夹路径不存在
    os.mkdir(path) # 创建要创建的文件夹

openfile函数用于读取文本文件内容,主要任务包括读取保存产品编码规则和生成数量的配置文件mrsoft.mri,以及读取用户选择的已生成的编码文件,为后续处理提供数据源。

openfile函数:文件读取机制


# 读取文件内容函数
def openfile(filename):
  f = open(filename) # 打开指定文件
  fllist = f.read() # 读取文件内容
  f.close() # 关闭文件
  return fllist # 返回读取的文件内容

inputbox函数是一个输入验证模块,根据传入的参数判断输入类型及合法性。它支持三种验证模式:不限位数的正整数、固定长度的字母以及带长度限制的数字,确保用户输入符合系统要求。

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函数负责编码的输出与显示,支持屏幕实时输出和文件持久化存储两种方式。该函数会调用mkdir确保目录存在,清理数据格式后写入文件,并在完成后通过弹窗提示保存路径及生成数量。

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图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述的函数设计与实现细节,能对读者在进行Python程序开发时有所帮助。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。