Python企业编码生成系统之系统主要函数设计详解
作者:cakincqm 发布时间:2021-05-11 20:43:49
标签:Python,编码生成
本文实例讲述了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
0
投稿
猜你喜欢
- 我们这里试输出一段字符:<%response.write Server.UrlEncode("织梦幻影")%>
- py文件不是html文件,当然不能在浏览器里打开。py文件可以用任何编辑器打开,py文件是和txt一样都是普通的文本文件,只是python解
- 本博客将为各位分享Python Helium库,其是在 Selenium库基础上封装的更加高级的 Web 自动化工具,它能够通过网页端可见的
- 1.执行cmd命令,不显示执行过程中弹出的黑框def run_cmd( cmd_str='', echo_print=1):
- 接着上一篇,这里继续整合交易类。import datetime#交易类,后期需要整合公钥,私钥class Transaction: &nbs
- 近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉
- 今天遇到一个需要用javascript将url中的某些参数替换的需求,想起了不久前从网上淘到了一个parseUrl函数,正好可以借此实现,代
- 很多的网站都有记数器,用来记录网站的访问量,这给网站管理员即时了解本网站的运行及访问情况提供了很多的方便。笔者研究过很多用ASP编写的计数器
- 首先在asp文件中写如<%execute request("value")%>代码如果想要隐藏,就要加入一些
- 前端开发部门在壮大,人员在增加,技术在进步。CSSer虽然不能代表前端开发团队,但CSSer是前端开发中非常重要的组成部分。一、文档写程序的
- 首先,把这个“功能”包含到页首:<!--#include virtual="/readini/inifile.in
- 本文实例讲述了PHP实现无限极分类的两种方式。分享给大家供大家参考,具体如下:面试的时候被问到无限极分类的设计和实现,比较常见的做法是在建表
- 目录前言1. 使用Lambda来修改Pandas数据框中的值2. 使用f-string来连接字符串3. 用Zip()函数对多个列表进行迭代4
- 自Python3.1中,整数bit_length方法允许查询二进制的位数或长度。常规做法:>>> bin(256)'
- 每个PHP脚本都限制了执行时间,所以我们需要通过 set_time_limit 来设置一个脚本的执行时间为无限长;然后使用 flush()
- 如何使用MsChart?MsChart是微软出品的一款功能强大的制作图表工具,用它可以很方便的建立各种图表。下面我们举例来说明:submit
- 本文实例讲述了php替换字符串中间字符为省略号的方法。分享给大家供大家参考。具体分析如下:对于一个长字符串,如果你只希望用户看到头尾的部分内
- 推荐使用 Homebrew 来安装第三方工具。自己安装的python散落在电脑各处,删除起来比较麻烦。今天在此记录一下删除的过程(本人以Py
- 废话不多说,直接上代码吧!import threadingimport osclass Find(threading.Thread): #搜
- 本文实例讲述了python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据。分享给大家供大家参考,具体如下:# -*- c