(草料二维码)xlsx自动统计票数代码并用pyinstaller快速打包

目录

一、背景

二、代码

三、pyinstaller快速打包

四、运行结果

五、代码数据下载



一、背景

        草料二维码能够比较方便地进行发放问卷、调查、投票等。但是,对统计后的数据缺乏自动统计功能。导出xlsx或csv文件后,手工统计票数太慢。因此,利用pandas等包对文件自动统计并显示,能降低工作量。为了方便使用,将其打包为exe文件。具体如下。

二、代码

        我们的草料二维码导出的xlsx文件如下图所示,目标是统计出列名为候选人投票下的内容中每个人的票数。

    python代码如下

import pandas as pd
from collections import Counter
 
# 获取用户输入的姓名并打印
path = input("请输入文件名,如 数据汇总_20231011.xlsx  :") #如果与py文件不在同一目录,需要将路径写上,如 C:\Users\Administrator\Desktop\数据汇总_20231011.xlsx
cname = input("请输入列名,如 候选人投票  :")

data = pd.read_excel(path, usecols=[cname])

def print_res(res, col=5): #横向显示
    w = max(7, max(len(i[0]) for i in res))
    i = 0
    for k,v in res:
        print(f"{k:{chr(12288)}>{w}}: {v:>3}票", end="     ")

        i = (i+1)%col
        if i == 0:
            print("")

def print_res1(res, row=5): #纵向显示
    w = max(7, max(len(i[0]) for i in res))
    for i in range(row):
        for k,v in res[i::row]:
            print(f"{k:{chr(12288)}>{w}}: {v:>3}票", end="     ")
        print()

hxr = []
for i in data[cname].values.tolist():
    if not pd.isna(i):
        hxr.extend(i.split(','))  #将内容分割。每个名字之间是用“,”分隔的,可根据需要修改

res = sorted(Counter(hxr).items(), key=lambda kv:kv[1], reverse=True)


 
print_res(res)
print('\n')
print_res1(res)

input()   #防止退出

运行结果如下:

三、pyinstaller快速打包

        为了方便使用,在conda环境中创建虚拟的干净的环境打包,具体步骤如下:

 ①安装包

pip install pipenv

②进入虚拟环境

pipenv shell

③安装pyinstaller以及所必要的库,注意使用pipenv

pipenv install pyinstaller
pipenv install pandas

④打包python文件1.py

pyinstaller 1.py

编译成功后,exe文件在如下文件夹中。使用时需要把dist内的文件带着一起,不能删掉。

四、运行结果

使用时需要把xlsx文件放到exe文件同一目录,否则需要把路径也写上,不然会闪退。

五、代码数据下载

链接:https://pan.baidu.com/s/1k0EIaIV8trEVqHwJjr2rKg?pwd=Luck 
提取码:Luck

下载二维码:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alocus_

如果我的内容帮助到你,打赏我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值