[python]windos下打包一个简单的python脚本

2023-11-12

1.脚本一览

python脚本如下,结构比较简单,基本功能是根据已有的名单去统计群里面没有参加接龙的人员和人数。

脚本只涉及到python自带的库。并且在运行时需要读取同目录下的两个txt文件。最后打印出没有统计结果。

import os

str_full_name=[]
with open('namestrList.txt','r',encoding='utf-8') as f:
    for i in f.readlines():
        str_full_name.append(i.replace("\n",''))

dic_name = {}
for i in range(str_full_name.__len__()):
    dic_name[str_full_name[i]]=0

def cherry_pick(lists,names_dic):
    # 筛选出有人的行,并进行整理,得到姓名,对应names_dic赋值为1.
    flag=0 
    for i in range(len(lists)):    
        if lists[i][0:2] == '2.' or flag==1:
            flag=1
        else:
            continue

        firstnames_origin = lists[i].split('.')[1].lstrip()#包含班级信息
        # firstnames_origin = firstnames_origin.split(" ")[0]
        idx_str=0 #第几个是姓名
        found_flag=0
        for str_ in firstnames_origin:
            for firstname in list(names_dic.keys()):
                if str_ == firstname[0]:
                    # 筛选出姓名字符 
                    found_flag=1
                    name=firstnames_origin[idx_str:].split(" ")[0]
                    names_dic[name]=1
                    break
            if found_flag==1:
                break    
            idx_str +=1
    return names_dic

def pick_no_respond(dic):
    num=0
    for key in dic.keys():
        if dic[key] == 0:
            num+=1
            print(f"暂未参与接龙:{key}")
    print(f"未参与接龙人数:{num}")

with open('wechatList.txt','r',encoding='utf-8') as lists:
    people_lists=lists.readlines()
    names_dic=cherry_pick(people_lists,dic_name)
    pick_no_respond(names_dic)

os.system("pause")

1.1 程序编程本身可能出现的问题

(1)UnicodeDecodeErro 报错

UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 2:

解决方法:
打开的文件中有中文字符,所以在打开txt时需要加上encoding='utf-8'
例如with open('wechatList.txt','r',encoding='utf-8')

(2)脚本运行后一闪而过
解决方法:
在程序运行最后一行添加os.system("pause")

import os
os.system("pause") #放在程序运行最后一行

1.2 windos终端打开python脚本遇到的问题

(1)不知道如何在文件夹调出终端
在文件夹空白处,单击右键是无法找到终端选项的。正确的做法是:

在此文件夹窗口内空白区域,Shift + 右键单击,从菜单中选择"在此处打开Powershell窗口"的项;
在这里插入图片描述

(2)无法退出
在终端使用python命令后,用惯了在linux终端直接ctrl + D退出,在windos下面发现退不出来。查了一下,需要使用:

Ctrl + Z + Enter

2.打包方法

参考这个链接:添加链接描述
简单描述:
(1)安装pyinstaller

 pip install pyinstaller

(2)打包python
打包exe
若需将xxx.py文件打包,只需在终端执行:

pyinstaller -F xxx.py

注:终端需切换至xxx.py文件所在目录下。

常用可选项及说明:
-F:打包后只生成单个exe格式文件;
-D:默认选项,创建一个目录,包含exe文件以及大量依赖文件;
-c:默认选项,使用控制台(就是类似cmd的黑框);
-w:不使用控制台;
-p:添加搜索路径,让其找到对应的库;
-i:改变生成程序的icon图标。

生成的exe位于dist文件夹下,直接复制出来就可以运行了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[python]windos下打包一个简单的python脚本 的相关文章

随机推荐

  • MyBatis 的架构

    MyBatis 的架构 MyBatis 是一个基于 Java 的持久层框架 可以将 SQL 语句和 Java 代码进行分离 通过 XML 或注解的方式配置 SQL 语句并执行 从而实现数据访问的功能 MyBatis 的架构包括以下几个部分
  • Mysql 实战之——读写分离方案

    Linux环境 Centos 6 8 64 bit Mysql 版本 5 1 7 一 准备工作 部署Mysql主从复制 二 使用Amoeba数据库代理来实现读写分离 Amoeba作为数据库代理 以中间件的形式存在 拓扑图如下所示 Amoeb
  • cad多个窗口并排显示_CAD的入门小技巧

    在CAD中可以绘制二维 三维图形 也可以对图纸中的图形进行标注和进行渲染 比较广泛的应用于建筑 机械 环境工程 电子 设计等一些行业 启动与退出启动 1 在桌面双击CAD图标2 开始 程序 Autodesk Autodesk CAD CAD
  • got an unexpected keyword argument 'xxx'

    这几天在捣鼓pyecharts的地图功能
  • Windows Mobile 设备中心 for vista 一览

    2007年06月21日 14 30 00 Microsoft Windows Mobile 设备中心 6 1 在6月6日发布了最新版 今天为了能在Vista开发PPC 或Wince设备 程序 下载安装了该程序 启动后界面确实很炫 和媒体中心
  • 【论文合集】2022年11月医学影像期刊论文合集

    本月IEEE Transactions on Medical Imaging 1区 top if 11 037 共41篇 Medical Image Analysis 1区 top if 13 828 共47篇 标题高频词汇 segment
  • Non-terminating decimal expansion; no exact representable decimal result.

    日志信息 问题分析 由于 BigDecimal 是不可变的 任意精度的有符号十进制数 所以可以做精确计算 但在除法中 准确的商可能是一个无限长的十进制扩展 例如 1 除以 3 所得的商 若我们在做除法时 没有指定舍入模式 无法表示为准确的结
  • C# 串口通信 stm32 电机

    前几天已经完成了stm32通过PWM对电机的控制 这几天趁上班之余 也完成了c 通过串口通信控制电机的运行 界面如下 好久没写文章了 发现非常不擅长分享和表达 第一反应是演示出来 可惜这里不能有动画 功能不强大啊 哪天有空了 把上位机代码和
  • json库 nlohmann/json 的基本使用

    C 的json库有很多 但nlohmann 链接 https github com nlohmann json 大概是目前使用最方便的跨平台json库了 其可以让用户以modern C 的方式解析和构建json 性能比rapidjson库略
  • 安卓c语言获取context,Android中Context详解 ---- 你所不知道的Context

    二 什么时候创建Context实例 熟悉了Context的继承关系后 我们接下来分析应用程序在什么情况需要创建Context对象的 应用程序创建Context实例的 情况有如下几种情况 1 创建Application 对象时 而且整个App
  • 一点就通——ChatGPT翻译润色的最新简明使用方案

    prompt使用推荐 1 翻译prompt 翻译主要有两种 第一种是我们的老朋友厦门大学潘王雨昂 个人主页 pwya github io 所编写使用的prompt 第二种是我自己改造的 1 我希望你能担任英语翻译 拼写校对和修辞改进的角色
  • JAVA——JSch

    第 1 章 JSch简介 1 1 简述 1 jsch是ssh2的一个纯Java实现 它允许你连接到一个sshd服务器 使用端口转发 X11转发 文件传输等 2 SSH 是较可靠 专为远程登录会话和其他网络服务提供安全性的协议 3 ftp协议
  • 金融量化— 动量策略(Momentum Strategy)

    什么是动量效应和动量交易策略 动量效应是指过去收益较高的资产 在未来一段时间内仍获得较高的收益 过去收益较低的资产在未来仍获得较低的收益 对于动量效应现象的解释 传统金融学认为 动量效应的存在并不是市场无效的证据 并试图从理性风险补偿这一角
  • Vue中的Diff算法

    Vue中的Diff算法 本篇文章主要介绍Diff算法的思想和Vue中对Diff算法的基本实现 1 为什么要用Diff算法 由于在浏览器中操作DOM的代价是非常 昂贵 的 所以才在Vue引入了Virtual DOM Virtual DOM是对
  • Java Response实现文件下载

    Servlet代码 public class ResponseFileServlet extends HttpServlet public void doGet HttpServletRequest request HttpServletR
  • HTML---表格合并(详解)

    例子详解 关键字解释 border 1 表格标签默认是无边框的 所以这里加上border 1 是为了更好的进行样式展示 colspan 2 表示的是进行单元格列合并 在该行中 先是th表头占据了一个单元格 之后遇到th 用colspan 2
  • JAVA错误: 在类中找不到主方法, 请将主方法定义为:public static void main(String[] args)

    一个类只有包含了入口才能运行 这个入口告诉了系统从哪开始运行程序 入口的格式固定 例如 class test public static void main String args 入口代码
  • 拷贝粘贴踩坑之Content-length

    最近在开发时遇到需要上传文件的功能 我自然而然地上网找了段实现上传功能的代码 我的程序有两个地方需要上传文件 这段代码在一处能用 另一处就报错了 代码如下 File file new File 文件路径 MultipartEntityBui
  • linux与windows文件共享及全屏

    1 安装VMware tools 虚拟机选项 安装VMware tools 然后在Ubuntu系统中弹出的VMware tools窗口中 找到VMwaretools 9 6 0 1294478 tar gz 复制到桌面 然后在桌面上的VMw
  • [python]windos下打包一个简单的python脚本

    1 脚本一览 python脚本如下 结构比较简单 基本功能是根据已有的名单去统计群里面没有参加接龙的人员和人数 脚本只涉及到python自带的库 并且在运行时需要读取同目录下的两个txt文件 最后打印出没有统计结果 import os st