Python学习_任务15_调用exe程序

Python被称为胶水语言也得益于其很方便地调用其他程序的特点

对于一个计算机程序,或者说程序的main函数过程,在很多时候会见到调用main时有参数,这些参数是作为程序的输入参数

Python打包得到的exe程序也能获取这些程序的输入参数:

(为避免程序执行完即很快退出导致看不到效果,此处添加sleep()操作)

# - Tutorial 15
# - 2020-2-10
# - Johan
# - 题目:
#   1、获取程序输入参数
#   2、调用.exe程序运行,获取返回参数
import sys
import time

try:
    arg1 = int(sys.argv[1])
    arg2 = int(sys.argv[2])
except Exception as e:
    arg1 = -1
    arg2 = -1
count = 5
while count > 0:
    count -= 1
    print('%d + %d = %d' % (arg1, arg2, arg1 + arg2))
    time.sleep(1)

IDE中直接运行结果是:

IDE中默认没有程序输入参数,在该源文件的目录下打开cmd(在目录路径处输入cmd即可)

输入pyinstaller -F xxx.py打包生成上述程序的exe程序,在dist目录下找到生成的exe程序

直接点击exe文件运行结果为:

可以看到直接点击exe时,默认不带程序输入参数,如果是不需要必需的程序输入参数的程序,到这里就能四处发布运行了

打开该目录的cmd,输入tutorial_15.exe 5 6,设置程序输入参数为5和6,运行结果为:

根据打印能看到我们设置的程序输入参数正确在程序中调用了,接下来我们另外再写一个python程序调用这个exe程序

拷贝该exe到新的Python源程序的目录下(省去目录重定向过程,该过程也可以用os包实现)

写新的调用exe的Python源程序:

# - Tutorial 15
# - 2020-2-10
# - Johan
# - 题目:
#   1、获取程序输入参数
#   2、调用.exe程序运行,获取返回参数
import os

path = 'tutorial_15.exe %s %s' % (5, 6)
recv_val = os.system(path)
print(recv_val)

运行结果为:

(根据最上面的代码可知exe程序会在开始运行5秒后结束,返回程序结果,所以调用exe程序的程序会看到延迟了5秒才打印结果)

Terminal最后显示的0才是表示程序的返回值,虽然看到仍然输出了调用exe程序的打印,注意区分打印部分和程序返回值部分

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值