Python呼叫(執行)外部程式引數問題

2021-07-08 16:48:29 字數 1723 閱讀 7850

shellexecute(hwnd, op , file , params , dir , bshow )

其引數含義如下所示。

hwnd:父視窗的控制代碼,如果沒有父視窗,則為0。

op:要進行的操作,為「open」、「print」或者為空。

file:要執行的程式,或者開啟的指令碼。

params:要向程式傳遞的引數,如果開啟的為檔案,則為空。

dir:程式初始化的目錄。

bshow:是否顯示視窗

可以這麼理解,使用shellexecute就像在windows下的cmd中呼叫某個exe檔案

編寫一段簡單的c++**,並生成exe檔案,**如下

#include 

#include

using

namespace

std;

int main(int argc, char* argv)

for (int i = 1; i < argc; ++i)

cin.get();

return

0;}

使用shellexecute呼叫

#usr/bin/env python

#-*- coding: utf-8 -*-

import win32api

import win32event

import win32process

defmain

(): exepath = "e:\python_wk\callexeonwin\hellosomething.exe"

param = "hello world abc 123"

win32api.shellexecute(0,

"open",

exepath,

param,

'',1)

if'__main__' == __name__:

main()

可以看到引數用空格隔開即可

使用createprocess呼叫

#usr/bin/env python

#-*- coding: utf-8 -*-

import win32api

import win32event

import win32process

defmain

(): exepath = "e:\python_wk\callexeonwin\hellosomething.exe"

param = "hello world abc 123"

param = exepath + " " + param

handle = win32process.createprocess(exepath,

param,

none,

none,

0,win32process.create_new_console,

none,

none,

win32process.startupinfo())

if'__main__' == __name__:

main()

因為由c++編譯的exe檔案的第乙個引數是自己本身,也就是在c++程式中 argv[0] 的值是exe檔案本身的路徑,可以看到,在使用createprocess呼叫exe時,我們需要將exe路徑加入到引數中,而在shellexecute中是不需要的。

Python呼叫(執行)外部程式

在python中可以方便地使用os模組執行其他的指令碼或者程式,這樣就可以在指令碼中直接使用其他指令碼,或者程式提供的功能,而不必再次編寫實現該功能的 為了更好地控制執行的程序,可以使用win32process模組中的函式。如果想進一步控制程序,則可以使用ctype模組,直接呼叫kernel32.d...

Python呼叫(執行)外部程式

1 使用os.system函式執行其他程式 2 使用shellexecute函式執行其他程式 3 使用createprocess函式執行其他程式 4 使用ctypes呼叫kernel32.dll中的函式 1 使用os.system函式執行其他程式 os模組中的system 函式可以方便地執行其他程式...

Python呼叫(執行)外部程式

在python中可以方便地使用os模組執行其他的指令碼或者程式,這樣就可以在指令碼中直接使用其他指令碼,或者程式提供的功能,而不必再次編寫實現該功能的 為了更好地控制執行的程序,可以使用win32process模組中的函式。如果想進一步控制程序,則可以使用ctype模組,直接呼叫kernel32.d...