python带参数打包exe及调用方式

yizhihongxing

下面我将详细讲解“Python带参数打包exe及调用方式”的完整攻略。

1. 大体思路

  • 在Python程序中获取命令行参数。
  • 使用PyInstaller对Python程序进行打包成exe文件。
  • 使用subprocess模块在Python程序中调用exe程序,并通过参数传递数据。

2. 获取命令行参数

在Python程序中获取命令行参数,可以使用sys模块的argv属性。示例代码如下:

import sys

def main(args):
    # 获取除了脚本名以外的命令行参数
    arg1 = args[1]
    arg2 = args[2]
    print(arg1, arg2)

if __name__ == '__main__':
    main(sys.argv)

上述代码中,main函数接收一个参数args,args是sys.argv所返回的参数列表。除了列表中的第一个元素是脚本名以外,其他元素就是命令行传入的参数。

3. 使用PyInstaller打包成exe文件

使用PyInstaller对Python程序进行打包成exe文件,可以通过以下步骤完成:

  • 安装PyInstaller
pip install pyinstaller
  • 运行PyInstaller
pyinstaller --onefile main.py

上述命令将把Python程序main.py打包成一个独立的exe文件,输出到dist目录下。

4. 使用subprocess模块在Python程序中调用exe程序

使用subprocess模块在Python程序中调用exe程序,并通过参数传递数据,可以使用以下代码:

import subprocess

def main(args):
    arg1 = args[1]
    arg2 = args[2]
    subprocess.run(['./dist/main.exe', arg1, arg2])

if __name__ == '__main__':
    main(sys.argv)

上述代码中,subprocess.run函数接收一个参数列表,该列表包含exe程序及其参数。其中'./dist/main.exe'是打包好的exe程序路径,arg1和arg2是通过命令行传入的参数。

5. 示例说明

假设我们有一个Python程序main.py,需要通过命令行传递两个参数,然后调用另一个Python程序func.py,并将传入的参数作为func.py的参数。最后,func.py需要将处理结果输出到控制台。

示例1:使用PyInstaller打包成exe文件

  • main.py代码
import sys
import subprocess

def main(args):
    arg1 = args[1]
    arg2 = args[2]
    subprocess.run(['./dist/func.exe', arg1, arg2])

if __name__ == '__main__':
    main(sys.argv)
  • func.py代码
import sys

def main(args):
    arg1 = args[0]
    arg2 = args[1]
    result = int(arg1) + int(arg2)
    print(result)

if __name__ == '__main__':
    main(sys.argv[1:])
  • 打包成exe文件
pyinstaller --onefile main.py
pyinstaller --onefile func.py
  • 执行程序
.\dist\main.exe 1 2

上述命令将输出3。

示例2:使用PyInstaller打包成单个exe文件

  • main.py代码
import sys
import subprocess

def main(args):
    arg1 = args[1]
    arg2 = args[2]
    subprocess.run([sys.executable, '-c', 'import func; func.main(["{}","{}"])'.format(arg1, arg2)])

if __name__ == '__main__':
    main(sys.argv)
  • func.py代码
import sys

def main(args):
    arg1 = args[0]
    arg2 = args[1]
    result = int(arg1) + int(arg2)
    print(result)

if __name__ == '__main__':
    main(sys.argv[1:])
  • 打包成单个exe文件
pyinstaller --onefile main.py
  • 执行程序
.\main.exe 1 2

上述命令将输出3。

以上就是Python带参数打包exe及调用方式的完整攻略,如果还有不清楚的地方可以再问我。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python带参数打包exe及调用方式 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • 使用单个 Python 脚本从 Linux、Mac 和 Windows 上的剪贴板复制数据

    【问题标题】:Copy data from the clipboard on Linux, Mac and Windows with a single Python script使用单个 Python 脚本从 Linux、Mac 和 Windows 上的剪贴板复制数据 【发布时间】:2023-04-06 18:14:01 【问题描述】: 我正在尝试在 Pyt…

    Python开发 2023年4月7日
    00
  • Python内置函数reversed()用法分析

    下面是完整的Python内置函数reversed()用法分析。 1. 什么是reversed()函数? reversed()是Python内置函数,用来反转一个序列(列表、元组、字符串等),返回一个反转后的迭代器。 2. reversed()函数的语法 reversed()函数的语法如下所示: reversed(seq) 其中,seq为待反转的序列。 3. …

    python 2023年5月14日
    00
  • Pyhton中单行和多行注释的使用方法及规范

    下面是Python中单行和多行注释的使用方法及规范的完整攻略。 单行注释 单行注释是用来在代码行后面添加注释的。在Python中,使用#符号来注释一行代码。被注释的内容不会被Python解释器执行,也不会影响程序的运行。 以下是单行注释的使用示例: # 这是一条单行注释 print(‘Hello, World!’) # 这是另一条单行注释 需要注意的是,每个…

    python 2023年5月20日
    00
  • Python Web框架之Django框架文件上传功能详解

    在Django框架中,文件上传是一个常见的功能。以下是PythonWeb框架之Django框架文件上传功能详解的详细攻略: 创建文件上传表单 要创建文件上传表单,可以使用forms模块。以下是创建文件上传表单的示例: from django import forms class UploadFileForm(forms.Form): title = form…

    python 2023年5月14日
    00
  • Python 循环函数详细介绍

    下面是“Python 循环函数详细介绍”的完整攻略: 一、Python循环函数 Python中常用的循环函数有for循环和while循环。 1. for循环 for循环用于对序列进行迭代,比如列表和字符串。以下是for循环的语法格式: for <variable> in <sequence>: <statements> e…

    python 2023年5月19日
    00
  • python实现21点小游戏

    Python实现21点小游戏攻略 游戏规则 21点又称为“Blackjack”,是一种非常流行的纸牌游戏,在游戏中需要计算分数,使得自己的分数不超过21。下面介绍一下游戏规则: 此游戏使用1副牌,先出牌者为庄家; 点数计算:A为1或11点,其他牌按面值计算,J、Q、K算10点; 游戏开始时,庄家随机发放2张牌给玩家和自己; 玩家先行动,可以选择“要牌”或“停…

    python 2023年5月19日
    00
  • ​​​​​​​如何利用python破解zip加密文件

    如何利用Python破解ZIP加密文件的完整攻略如下: 步骤一:安装必要的Python库 首先需要安装一些Python库,这些库包括zipfile、argparse和os。在命令行窗口中输入以下命令进行安装: pip install argparse zipfile or pip3 install argparse zipfile 步骤二:编写代码 接下来需…

    python 2023年6月3日
    00
  • python中列表的含义及用法

    Python中的列表(List)是一种非常常用且灵活的数据类型,用于存储一组有序数据。在本篇攻略中,我们将介绍Python中列表的含义及用法,以及常用的操作方法和技巧。 什么是列表? Python中的列表是一种有序的序列,用一对方括号“[]”来表示,可以存储不同类型的数据,例如整型、浮点型、字符串等。列表中的每个元素都有一个对应的索引,可以通过索引来访问列表…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部