本人计算机萌新一枚,从今天开始写点平时遇到的问题,可能只是一个解决办法或者一些小小的感悟。或许研究得没那么深入,但也希望能够分享一些自己的经验。可能格式或者某些说法有些错误,望指正,谢谢。
在工作的时候,对方发了一个写好并且编译好的包,linux版本下lib文件夹里全是.a文件(静态链接库),bin文件夹是编译好的可执行文件,但是我重构代码时使用的python,并不知道如何通过该文件调用对方给的接口。因为对方给的不是.so文件(动态链接库),不然我就能够通过os库直接进行调用了。
我是通过python调用shell脚本运行可执行文件的接口实现对方给的功能。简单讲就是,写了个shell脚本运行可执行文件,并传入参数,实现功能。之后再通过python调用脚本来实现这个功能。
-可执行文件接口
-shell脚本
-python调用shell脚本
使用实例
./文件名 './输入文件名.jpg' './输出文件名.jpg' 123#最后一项为参数
因为过了两天了,记不清了,貌似是在这个过程中因为权限的问题需要到root下进行。(过两天查下资料测试一下,做修改)
首先进入root权限,然后新建一个shell脚本,再通过vim进行编写,同时在调用可执行文件的同时记得传入参数。
sudo su
cd /usr/local
touch test.sh
vim test.sh
#!/bin/bash/
绝对路径/可执行文件名 $1 $2 $3
通过调用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