python实现自动检测核酸用码记录 ---- 自动化办公小技巧(摸鱼利器)

news2024/9/21 14:34:52

自动检测核酸用码记录

  • 🥇预备知识
    • ✈️os库
      • os.path.exists()
      • os.mkdir()
      • os.remove()
      • os.listdir()
    • 👽Python 3 查看字符编码方法
    • ⏰python3获取当前系统时间
    • 🐤读取图片,保存到指定目录
    • 👼将数据保存到csv文件中
  • 🥈python实现文字识别
    • 🚗Tesseract
  • 🥉python中解压rar和zip文件
    • 🚄rar文件
    • 🌵zip
      • Python解压缩ZIP文件出现乱码问题的解决方案
  • 🐗利用Pycharm将python文件打包为exe文件
  • 💔自动检验核酸展示

🥇预备知识

✈️os库

os.path.exists()

os模块中的os.path.exists()方法用于检验文件是否存在。
如果不存在返回False ,存在则返回True

  • 判断文件是否存在

    import os
    os.path.exists(test_file.txt)

  • 判断文件夹是否存在

    import os
    os.path.exists(test_dir)

os.mkdir()

os.mkdir() 方法用于以数字权限模式创建目录。用法:os.mkdir(path[, mode])

  • path – 要创建的目录,可以是相对或者绝对路径。
  • mode – 要为目录设置的权限数字模式。
  • 创建相对路径下的文件夹

    import os
    path = “./file1”
    os.mkdir( path)

  • 创建绝对路径下的文件夹

    import os
    path = “D:\file1”
    os.mkdir( path)

os.remove()

在Python中可以使用os.remove()函数删除文件(注意一定是一个文件)。
其原型如下所示:os.remov(path)
其参数path 为要删除的文件的路径。

  • 如删除D盘下books目录下book目录中的book.txt的文件
 import os
 os.remove('d:\\books\\book\\book.txt')

os.listdir()

该函数返回指定路径下,文件和文件夹组成的列表

  • 获取一个文件夹中所有图片的目录
    # 文字图片的路径
    path = 'Images\\'
    # 获取图片路径列表
    imgs = [path + i for i in os.listdir(path)]
    

👽Python 3 查看字符编码方法

查看字符编码,需要用到chardet模块
TIp:chardet.detect 在查看字符串传的编码时,必须要把字符串encode后,才能查看当前字符串编码格式

  • 查看某个字符串编码
    import chardet
    s = '张三'
    print ( chardet . detect ( str . encode ( s ) ) )
    输出信息: { 'encoding' : 'utf-8' , 'confidence' : 0.7525 , 'language' : '' }
    

⏰python3获取当前系统时间

import time

print('时间显示')
for i in range(3):
 print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
 time.sleep(1)
#每隔1秒打印一次系统时间,打印三次
#time.time() 返回当前时间的时间戳(1970纪元后经过的浮点秒数)
#time.localtime()格式化时间戳为本地的时间
#time.strftime()返回以可读字符串表示的当地时间
'''
python中时间日期格式化符号:

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
'''
  • 实例
    now = datetime.now() # 获取当前系统时间
    current_time = now.strftime("%Y-%m-%d") # 得到当前日期,编码格式为ASCII码
    

``

🐤读取图片,保存到指定目录

使用到了python中的PIL(pillow) 和 os库

  • 代码
    save_out_negative = 'errorImages\\' # 指定的文件夹
    
     for i in range (len(ImagePath)): # ImagePath 保存图片原始路径
         img = Image.open(ImagePath[i])  # 读取图片
         if os.path.exists('errorImages') == False: # 判断是否已经存在这个目录了如果没有则增加
             os.mkdir('./errorImages') # 采用相对路径创建
             # 将图片路径只提取出图片名,我的路径格式为 Images\图片名
         out_name = ImagePath[i].split('\\')[1] 
         save_path = save_out_negative + out_name # 整合成新的路径
         img.save(save_path)  # 保存图片
    

👼将数据保存到csv文件中

  • 实例
# 创建列表,保存header内容
    header_list = ["图片路径","姓名"]
    # 创建列表,保存数据
    data_list = []
    for i in range(len(errorImage)):
        tempList = []
        tempList.append(errorImage[i])
        errorName = re.search(r'\\.*\.', errorImage[i])
        errorName = errorName.group().replace("\\", "") # 得到图片路径
        errorName = errorName.replace('.','')
        tempList.append(errorName)
        data_list.append(tempList)
    # 以写方式打开文件。注意添加 newline="",否则会在两行数据之间都插入一行空白。
    with open("notSubmitData.csv", mode="w", encoding="utf-8-sig", newline="") as f:
        # 基于打开的文件,创建 csv.writer 实例
        writer = csv.writer(f)
        # 写入 header。
        # writerow() 一次只能写入一行。
        writer.writerow(header_list)
        # 写入数据, writerows() 一次写入多行。
        writer.writerows(data_list)

🥈python实现文字识别

🚗Tesseract

文字识别是ORC的一部分内容,ORC的意思是光学字符识别,通俗讲就是文字识别。Tesseract是一个用于文字识别的工具,我们结合Python使用可以很快的实现文字识别。但是在此之前我们需要完成一个繁琐的工作。

关于配置Tesseract 可以移步到这个博客:Python识别图片中的文字

注意点:

  1. 下载之后记得先运行再去配置系统变量。
  2. 所在目录有中文也没有关系。
  3. 如果没有该添加中文语言包会无法识别出中文。

🥉python中解压rar和zip文件

🚄rar文件

Python下的unrar还依赖RAR官方的库。因为我们用pip导入包之后还需要配置相应的环境。

  • 安装unrar模块: pip install unrar

  • 配置环境

    1. 下载UnRAR可执行文件:官网链接UnRAR ,找到UnRAR.dll下载即可。在这里插入图片描述

    2. 安装UnRAR,双击之后选择路径的时候选用默认的就可以了,也不是很大(避免出现问题)在这里插入图片描述
      在这里插入图片描述

    3. 然后重要的一步,就是添加环境变量。是在系统变量中添加新的,不是在path中,变量名: UNRAR_LIB_PATH , 变量值: 64位机 C:\Program Files (x86)\UnrarDLL\x64\UnRAR64.dll ; 32位机 C:\Program Files (x86)\UnrarDLL\UnRAR.dll
      在这里插入图片描述

    4. 确定保存环境变量后,就配置成功了。

  • 简单的使用实例:

    from unrar import rarfile
    file = rarfile.RarFile('file_name')  #这里写入的是需要解压的文件,别忘了加路径  
    file.extractall('you_want_path')  #这里写入的是你想要解压到的文件夹
    
  1. 更多关于使用unrar可以去这里:unrar
rf = rarfile.RarFile(_rarfile, mode='r') # mode的值只能为'r'
rf_list = rf.namelist() # 得到压缩包里所有的文件
print('rar文件内容', rf_list)

for f in rf_list:
    rf.extract(f, folder_abs)  # 循环解压,将文件解压到指定路径

# 一次性解压所有文件到指定目录
# rf.extractall(path) # 不传path,默认为当前目录

解压rar文件不会出现解压之后文件名中文乱码现象。

🌵zip

使用zipfile模块, ZIP 文件格式是一个常用的归档与压缩标准。 这个模块提供了创建、读取、写入、添加及列出 ZIP 文件的工具。
官网介绍链接

  1. pip 安装命令:pip install zipfile
  2. 基本操作
import zipfile

'''
基本格式:zipfile.ZipFile(filename[,mode[,compression[,allowZip64]]])
mode:可选 r,w,a 代表不同的打开文件的方式;r 只读;w 重写;a 添加
compression:指出这个 zipfile 用什么压缩方法,默认是 ZIP_STORED,另一种选择是 ZIP_DEFLATED;
allowZip64:bool型变量,当设置为True时可以创建大于 2G 的 zip 文件,默认值 True;

'''
zip_file = zipfile.ZipFile(path)
zip_list = zip_file.namelist() # 得到压缩包里所有文件

for f in zip_list:
    zip_file.extract(f, folder_abs) # 循环解压文件到指定目录
 
zip_file.close() # 关闭文件,必须有,释放内存

Python解压缩ZIP文件出现乱码问题的解决方案

原因:原来编码不能被正确识别为utf-8的时候,会被是被识别并decode为cp437编码,如果原来是gbk编码的话就会变成乱码。

解决方法:解决的办法也很简单,那就是将文件名先使用cp437编码encode,然后再用gbk编码decode即可。

  • 代码实例:
    for file in zip_file_contents.namelist():
        filename = file.encode('cp437').decode('gbk')  # 先使用cp437编码,然后再使用gbk解码
        zip_file_contents.extract(file, release_file_dir)  # 解压缩ZIP文件
        os.chdir(release_file_dir)  # 切换到目标目录,用于改变当前工作目录的路径。
        os.rename(file, filename)  # 重命名文件,将原本乱码的file,变成正确编码的filename
        os.chdir(retval) #切换回解压的正确路径

🐗利用Pycharm将python文件打包为exe文件

1、PyInstaller简介

PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,从而允许最终用户在无需安装 Python 的情况下执行应用程序。
PyInstaller 制作出来的执行文件并不是跨平台的,如果需要为不同平台打包,就要在相应平台上运行PyInstaller进行打包。

2、PyInstaller安装

pip install Pyinstaller

3、利用PyInstaller对pycharm中的python文件进行打包:利用Pycharm将python文件打包为exe文件(超详细,附带如何设置文件图标)

💔自动检验核酸展示

原始文件:

  1. Images中存放要识别的图片
    在这里插入图片描述
    里边为一个压缩包
    在这里插入图片描述

开始处理,
在这里插入图片描述

  1. 将Images中的压缩包进行解压在这里插入图片描述
  2. errorImages 存放的是不符合条件的图片
  3. imagePath为图片路径。
  4. notSubmitData 存放的是不符合条件的人员名单

在这里插入图片描述

参考文章:

  1. 添加链接描述
  2. zip中文乱码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1950.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用html+css实现一个静态页面(含源码)

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…

freeRTOS学习(三)

任务管理 任务功能:任务以C函数的形式实现。唯一特别的地方是它们的原型,它必须返回void并接受一个void指针形参。 void ATaskFunction(void *pvParameters);**每个任务本身都是一个小程序。它有一个入口点,通常在无限循环中永远运行&#…

回归测试选择用例,看这里就可以了。

介绍 在软件生命周期中,软件经常发生变化,软件开发人员任何代码改动都会有引入故障的风险)。 为了消除或减小这种风险,在软件迭代开发模式下,回归测试扮演着重要的角色:它能够帮助测试人员验证新增的功能…

mac配置jdk环境变量

**下载完成后直接安装一路next直到完成。 查看JDK安装后的路径 在终端输入以下命令查看JDK地址** 按照以下命令的顺序来设置jdk环境变量 查看JDK地址 :/usr/libexec/java_home -V。 open -e .bash_profile打开文件 touch .bash_profile 创建文件 打开.bash_prof…

G2O (General Graph Optimization)入门及简单使用

g2o全称是General Graph Optimization,也就是图优化,我们在做SLAM后端或者更加常见的任何优化问题(曲线拟合)都可以使用G2O进行处理。 先放出本文的几个参考链接: 半闲居士(高翔博士) 非线性…

智能终端信息安全概念(一):开篇

最近屁事以及自己对于时间的把控太差了,还有就是一个师妹最近让辅导作业,很烦。 回归正轨,好好学习Linux驱动的方面。 在实际的Linux驱动中,Linux内核尽量做得更多,以便于底层的驱动可以做得更少。 而且&#xff0c…

【C++笔试强训】第十七天

🎇C笔试强训 博客主页:一起去看日落吗分享博主的C刷题日常,大家一起学习博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。 💦&a…

【微服务容器化】第四章-Docker应用部署

🌴第四章 Docker应用部署🍃4.1 Mysql部署🍃4.2 Tomcat部署🍃4.3 Nginx 部署🍃4.4 redis 部署🍃4.1 Mysql部署 分析: 容器内的网络服务和外部机器不能直接通信 外部机器和宿主机可以直接通信 宿主机和容器…

因为有了它,我用舍友玩王者的时间拿到了华为offer

随时随地刷Leetcode题的方法,大学因为这个,我入职大厂! 下面有免费试用网址 目录我如何拿到大厂offer秘密武器使用教程VSCODE云IDE介绍完整功能,兼容VS Code安装的插件没有效果?通过终端启动项目后无法预览?CIDE收费…

sklearn笔记:调参

1 介绍 超参数是不直接在估计器中学习的参数。 在 scikit-learn 中,它们作为参数传递给估计器类的构造函数。 需要搜索超参数空间以获得最佳交叉验证分数。scikit-learn 中提供了两种通用的参数搜索方法: 对于给定的值,GridSearchCV 会详尽地…

客快物流大数据项目(八十四):Impala优化

文章目录 Impala优化 一、​​​​​​​Impala关键配置 二、Impala查询分析

C++ Reference: Standard C++ Library reference: C Library: cstring: strspn

C官网参考链接&#xff1a;strspnhttps://cplusplus.com/reference/cstring/strspn/strspn 函数 <cstring> strspn size_t strspn ( const char * str1, const char * str2 ); 获取字符串中字符集的跨度 返回str1的初始部分的长度&#xff0c;它只包含str2的一部分字符…

FPGA双线性插值图像缩放详细讲解,上板验证稳定通过,提供两套工程源码

开局直接放大招&#xff1a;提供源码及工程&#xff1b; 重点讲解双线性插值图像缩放&#xff1b; 此功能模块使用HLS实现&#xff0c;并已封装导出IP&#xff0c;可在工程中添加并使用&#xff0c;可提供HLS工程源码&#xff1b; 若是用verilog实现双线性插值图像缩放&#xf…

【Java中23种面试常考的设计模式之组合模式(Composite)---结构型模式】

【Java中23种面试常考的设计模式之组合模式(Composite)—结构型模式】 知识回顾: 之前我们讲过的设计模式在这里呦: 【面试最常见的设计模式之单例模式】 【面试最常见的设计模式之工厂模式】 【Java中23种面试常考的设计模式之备忘录模式(Memento)—行为型模式】 【Java中23种…

【每日渗透笔记】后台弱口令+未授权尝试

目录 一、特点&#xff1a; 1.1、特征&#xff1a; 1.2、分析&#xff1a; 1.3、所处情景&#xff1a; 目前&#xff1a; 问题&#xff1a; 二、渗透 一、特点&#xff1a; 1.1、特征&#xff1a; 用户登陆页面 1.2、分析&#xff1a; 毋庸置疑&#xff0c;既然有用户登…

SpringBoot系列之动态生成cron表达式执行定时程序

业务场景 最近需要实现一个功能&#xff0c;根据页面选择的星期&#xff0c;默认是凌晨执行&#xff0c;生成cron表达式&#xff0c;然后定时执行定时程序 环境准备 开发环境 JDK 1.8SpringBoot2.2.1Maven 3.2 开发工具 IntelliJ IDEAsmartGitNavicat15 在IDEA里集成阿里的…

Pycharm 如何自动调整 Python 代码符合 pep8 编码规范

前言 学生时代&#xff0c;写的一手漂亮的好字&#xff0c;能给人留下好的印象。作为 IT 人&#xff0c;写的一手漂亮的代码也会给人留下美好的印象。 代码就是自己的脸面&#xff0c;不管写质量怎样&#xff0c;首先要写的漂亮。Python 有一套 pep8 编码规范标准。 什么是 p…

电感重要参数的理解

电感作为一种储能元件&#xff0c;广泛运用在硬件电路的各个模块。较为常见的有DCDC电路&#xff0c;滤波电路以及振荡电路等。对于电感的选取&#xff0c;大多数人往往只关心感值&#xff0c;感值越大&#xff0c;储能越强&#xff0c;纹波也就越小。然而除了感值以外&#xf…

用Python剪辑视频?太简单了

人生苦短&#xff0c;快学Python&#xff01; 最近我在网上下载一个视频&#xff0c;结果下载到本地是近百个视频片段&#xff0c;为了方便观看只能将这些片段合并为一个视频整体。 不过我并没有搜到能够处理类似情况的小工具&#xff0c;只是发现剪映等软件可以实现视频合并功…

Allegro DFM Ravel Rule丝印文字到测试点pad间距检查

Allegro DFM Ravel Rule丝印文字到测试点pad间距检查 下面介绍丝印到测试点pad间距检查 设置top层丝印文字到孔属性测试点间距,默认值是1mil,可以自己修改这个值 设置bottom层丝印文字到孔属性测试点间距 设置top层丝印文字到通孔pin属性测试点间距 设置bottom层丝印文字…