Python では、os モジュールを使用して他のスクリプトやプログラムを簡単に実行できるため、スクリプト内で他のスクリプトやプログラムが提供する関数を直接使用することができます。この関数のコード。実行中のプロセスをより適切に制御するには、win32process モジュールの関数を使用できます。プロセスをさらに制御したい場合は、ctype モジュールを使用して kernel32.dll の関数を直接呼び出すことができます。
1. os.system() 関数
os モジュールの system() 関数は、他のプログラムやスクリプトを簡単に実行できます。モードは次のとおりです。
##os.system(command): command: 実行するコマンド。スクリプトにパラメータを渡したい場合は、スペースを使用してプログラムと複数のパラメータを区切ります。例:#打开记事本 os.system('notepad') #用记事本打开aa.txt os.system('notepad aa.txt') #aa.txt文件必须在当前程序目录 #直接打开aa.txt os.system('aa.txt') #直接打开Excel文件 os.system('aa.xlsx') #直接打开Word文件 os.system('bb.docx') filepath='测试.xlsx' #打开包含中文的文件 os.system(filepath.decode('utf8').encode('GBK'))2, ShellExecute 関数win32api モジュールの ShellExecute() 関数を使用して他のプログラムを実行します。形式は次のとおりです。ShellExecute(hwnd, op, file, args, dir, show)
import win32api win32api.ShellExecute(0, 'open', 'notepad.exe', '', '', 0) # 后台执行 win32api.ShellExecute(0, 'open', 'notepad.exe', '', '', 1) # 前台打开 win32api.ShellExecute(0, 'open', 'notepad.exe', 'wmi.txt', '', 1) # 打开文件 win32api.ShellExecute(0, 'open', 'iexplore.exe', '', '', 1) # 打开IE浏览器 win32api.ShellExecute(0, 'open', 'iexplore.exe', 'https://www.baidu.com/', '', 1) # 用IE浏览器打开百度网址 win32api.ShellExecute(0, 'open', 'mspaint.exe', 'wxqr.png', '', 1) #用系统附件自带的画图打开图片wxqr.png3. CreateProcessプロセスの作成: スクリプトを介して実行されるプログラムの制御を容易にするために、win32process モジュールの CreateProcess() 関数を使用して、対応するプログラムを実行するプロセスを作成します。その関数の形式は次のとおりです。 CreateProcess(appName, cmdLine, proAttr, threadAttr, InheritHandle, CreationFlags, newEnv, currentDir, Attr)appName: 実行可能ファイル名cmdLine: コマンド ライン パラメーターprocAttr :プロセス セーフティ属性threadAttr: スレッド セーフティ属性InheritHandle: 継承フラグCreationFlags: 作成フラグcurrentDir: プロセスの現在のディレクトリ
Attr: 作成したプログラムの属性プロセスの終了:
import win32process # 打开记事本,获得其句柄 handle = win32process.CreateProcess(r'C:\Windows\notepad.exe', '', None, None, 0, win32process.CREATE_NO_WINDOW, None, None, win32process.STARTUPINFO()) time.sleep(4) # 终止进程 win32process.TerminateProcess(handle[0], 0) import win32event #等待进程结束 print win32event.WaitForSingleObject(handle[0], -1)4. ctypes を使用して kernel32 の関数を呼び出す。dllctypes モジュールを使用すると、Python で kernel32 の関数を呼び出すことができます。ダイナミックリンクライブラリ。 ctypes モジュールは、ダイナミック リンク ライブラリ内の関数を呼び出す機能を Python に提供します。 ctypes モジュールを使用すると、C 言語で記述されたダイナミック リンク ライブラリを簡単に呼び出し、それにパラメータを渡すことができます。 ctypes モジュールは、C 言語で基本的なデータ型を定義し、C 言語で構造体と共用体を実装できます。 ctypes モジュールは、Windows、Linux、Mac OS などの複数のオペレーティング システムで動作し、基本的にクロスプラットフォームです。 例: Windows で user32.dll の MessageBoxA 関数を呼び出します。
from ctypes import * user32 = windll.LoadLibrary('user32.dll') a = user32.MessageBoxA(0, str.encode('Hello Ctypes!'), str.encode('Ctypes'), 0) print aPython 関連の技術記事をさらに詳しく知りたい場合は、
Python チュートリアル 列にアクセスして学習してください。
以上がPythonで他のプログラムを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。