在衡桥同目录下橘笑有a.py和b.py 在目录下新建__init__.py文件,此时这个目录的文件就是一个包,可以import ,直接在需要的地方调用函数即可。
方法一、os.system() 会保存可执行程序中的打印值和主函数的返回值,且会将执行过程中要打印的内容打印出来。import os
main = "project1.exe"
r_v = os.system(main)
print (r_v )
方法二、commands.getstatusoutput() 会保存可执行程序中的打印值和主函数的返回值,但不会将执行过程中要打印的内容打印出来。
import subprocess
import os
main = "project1.exe"
if os.path.exists(main):
rc,out= subprocess.getstatusoutput(main)
print (rc)
print ('*'*10)
print (out)
方法三、popen() 会保存可执行程序中的打印值,但不会保存主函数的返回值,也但不会将执行过程中要打印的内容打印出来。
import os
main = "project1.exe"
f = os.popen(main)
data = f.readlines()
f.close()
print (data)
另外,上面提到的三种方式,实际上都是在python中执行命令,因此他们不只是用来执行可执行文件,也可以用来执行linux系统中别的指令。
关于python中3种调用可执行文件.exe的方法,环球青藤小编就和大家分享到这里了,学习是永无止境的,学习一项技能更是受益终身,所以,只要肯努力学,什么时候开始都不晚。如果您还想继续了解关于python编程的学习方法及素材等内容,可以点击本站其他文章学习。
写一个cpp文件, 比如叫 abc.cpp //abc.cpp #include "Python.h" PyObject* _user_add( PyObject *self, PyObject *args ) { int xxint yyint zzif (!PyArg_ParseTuple(args, "橘此i|i", &xx,&yy))return NULLzz = xx+yyreturn Py_BuildValue("i", zz)} static PyMethodDef User_Methods[] = { {"add", _user_add, METH_VARARGS, "add two numbers."}, {NULL, NULL, 0, NULL}/* Sentinel */ }PyMODINIT_FUNC inituser(void) { (void) Py_InitModule("user", User_Methods)} 然氏铅后写一个setup.py # setup.py import distutils from distutils.core import setup, Extension module_user = Extension("user", sources = ["abc.cpp"]) setup(name = "My User Extension",version = "1.0"圆核迅, ext_modules = [module_user]) 然后编译安装这个c++扩展 python setup.py install 应该就可以用了 >>>import user >>>user.add(8,9) 试试看噢。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)