Python 使用 pyinstaller 打包成 exe/app 文件,并支持传入外部参

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: Python 使用 pyinstaller 打包成 exe/app 文件,并支持传入外部参
import sys
import os
# 路径操作对象
print(os.path)
# 返回当前脚本的路径
print(sys.executable)
# 返回当前脚本的绝对路径
print(os.path.realpath(sys.executable))
# 去掉文件名,返回当前脚本的目录(也可以理解从里到外,去掉一层)
print(os.path.dirname(os.path.realpath(sys.executable)))
# 也可以嵌套多去掉几层,直到想要的文件夹即可
print(os.path.dirname(os.path.dirname(os.path.realpath(sys.executable))))
# 举例
# path = os.path.dirname(os.path.dirname(os.path.realpath(sys.executable)))
# filePath = path + '/' + 'config.json'
# 注意 mac、win 路径中的斜杠问题,可以使用转义符 '\\' '\/'
  • 下面两种传参方式,打包后调用:
# mac 可执行文件也一样传,win 暂时没测试过,后续补上
$ main 1 2 3
# 但是打包的 mac 软件 不可以这么传,要么 gui 导入,要么内部写死一个路径读取(例如:网页)
  • sys 方式:
import sys
import json
# 解析参数
in_filepath = sys.argv[1]  # 参数 1
# out_style = sys.argv[2]    # 参数 2
# out_filepath = sys.argv[3] # 参数 3
print("--input_filepath:",in_filepath)
# print("--output_file_style",out_style)
# print("--output_filepath",out_filepath)
# 解析 json 文件
# obj = json.load(open('./test.json', 'r', encoding="utf-8"))
# 解析动态路径
obj = json.load(open(in_filepath, 'r', encoding="utf-8"))
# 输出使用
print(obj, obj[0])
  • 调用方式:
# 传入方式
$ python test.py ./test.json
# 多个则 空格 分隔开
$ python test.py 1 2 3
  • argparse 方式:
# 导入库
import argparse
# 1. 定义命令行解析器对象
parser = argparse.ArgumentParser(description='Demo 参数介绍')
# 2. 添加命令行参数(--xxx 为固定写法)
parser.add_argument('--name', type=str, help='名称必须传字符串')
parser.add_argument('--age', type=int, default=20, help='年龄必须传 int,默认 20 岁')
# 3. 从命令行中结构化解析参数
args = parser.parse_args()
print('输出参数集合:', args)
epochs = args.name
batch = args.age
print('单个输出 {} {}'.format(epochs, batch))
  • 调用方式:
# 传入方式,必须带上 key,得 key value 的形式传入
$ python test.py --name dzm
# 多个则一直 key value 的方式往后拼接
$ python test.py --name dzm --age 30
# 怎么知道传参有哪些
$ python test.py -h
# 会输出描述
usage: dzm.py [-h] [--name NAME] [--age AGE]
Demo 参数介绍
options:
  -h, --help   show this help message and exit
  --name NAME  名称必须传字符串
  --age AGE    年龄必须传 int,默认 20 岁
相关文章
|
1天前
|
IDE 开发工具 iOS开发
Python编程案例:查找指定文件大小的文件并输出路径
Python编程案例:查找指定文件大小的文件并输出路径
10 3
|
1天前
|
文件存储 iOS开发 MacOS
Python编程案例:文件查找并归类
Python编程案例:文件查找并归类
|
1天前
|
IDE 开发工具 数据安全/隐私保护
Python编程实现批量md5加密pdf文件
Python编程实现批量md5加密pdf文件
|
Python 开发工具
python (2):python打包成可执行文件app
本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/46683645 转载请一定注明出处! 1,mac程序打包成app 有两个方案一个 pyinstaller 已经测试过了。没有打包成功。 py2app可以成功打包。 2,安装py2app 首先安装一个gui框架 wxpython 参考: ht
2441 0
|
1天前
|
iOS开发 MacOS Python
Python 编程案例:谁没交论文?输出并生成电子表格
Python 编程案例:谁没交论文?输出并生成电子表格
17 9
|
1天前
|
Python
Python编程案例:同一工作簿不同表单特定数据添加到工作簿的另一表单里
Python编程案例:同一工作簿不同表单特定数据添加到工作簿的另一表单里
|
1天前
|
iOS开发 MacOS Python
Python编程案例:根据姓名归档论文、报告
Python编程案例:根据姓名归档论文、报告
|
1天前
|
数据处理 Python
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
|
1天前
|
Python
Python编程获取当前日期的所属周日期信息
Python编程获取当前日期的所属周日期信息
11 1
|
1天前
|
安全 网络安全 数据安全/隐私保护
Python渗透测试之流量分析:流量嗅探工具编程
Python渗透测试之流量分析:流量嗅探工具编程
10 0