shell执行指定python文件的方法_python调用shell执行编译好的可执行文件

本人计算机萌新一枚,从今天开始写点平时遇到的问题,可能只是一个解决办法或者一些小小的感悟。或许研究得没那么深入,但也希望能够分享一些自己的经验。可能格式或者某些说法有些错误,望指正,谢谢。

前情提要

在工作的时候,对方发了一个写好并且编译好的包,linux版本下lib文件夹里全是.a文件(静态链接库),bin文件夹是编译好的可执行文件,但是我重构代码时使用的python,并不知道如何通过该文件调用对方给的接口。因为对方给的不是.so文件(动态链接库),不然我就能够通过os库直接进行调用了。

解决方式

我是通过python调用shell脚本运行可执行文件的接口实现对方给的功能。简单讲就是,写了个shell脚本运行可执行文件,并传入参数,实现功能。之后再通过python调用脚本来实现这个功能。

详细过程

-可执行文件接口

-shell脚本

-python调用shell脚本

可执行文件接口

使用实例

./文件名'./输入文件名.jpg' './输出文件名.jpg' 123#最后一项为参数

shell脚本

因为过了两天了,记不清了,貌似是在这个过程中因为权限的问题需要到root下进行。(过两天查下资料测试一下,做修改)首先进入root权限,然后新建一个shell脚本,再通过vim进行编写,同时在调用可执行文件的同时记得传入参数。

sudo su

cd /usr/local

touch test.sh

vim test.sh

#!/bin/bash/

绝对路径/可执行文件名$1 $2 $3

python调用shell脚本

通过调用os以及sys库,实现调用shell脚本和传入参数的功能

touch test.py

vim test.py

#!/usr/bin/python

##!/usr/bin/python

import os

import sys

def main():

arg0 = sys.argv[1]

arg1 = sys.argv[2]

arg2 = sys.argv[3]

os.system('/root/桌面' + arg0 + ' ' + arg1 + ' ' + arg2)

if __name__ == '__main__':

main()

在终端输入以下代码:

test.py './输入文件名.jpg' './输出文件名.jpg' 123

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值