파이썬에서는 os 모듈을 이용하면 쉽게 다른 스크립트나 프로그램을 실행할 수 있기 때문에 다른 스크립트나 프로그램에서 제공하는 기능을 스크립트에서 직접 사용할 수 있습니다. , 해당 기능을 다시 구현하기 위해 코드를 작성할 필요가 없습니다. 실행 중인 프로세스를 더 잘 제어하려면 win32process 모듈의 함수를 사용할 수 있습니다. 프로세스를 추가로 제어하려면 ctype 모듈을 사용하여 kernel32.dll의 함수를 직접 호출할 수 있습니다. 다음은 4가지 방법입니다:
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'))
ShellExecute(hwnd, op, file , args, dir, show)
hwnd: 상위 창의 핸들, 상위 창이 없으면 0입니다.
op: 실행할 작업(열림, 인쇄 또는 비어 있음)
file: 실행할 프로그램 또는 열 스크립트
args: 프로그램에 전달할 매개변수, 파일을 열면 비어 있음
dir: 프로그램이 초기화되는 디렉터리
show: 창을 표시할지 여부 # 🎜🎜#
ShellExecute 기능을 사용하는 것은 리소스 관리자에서 파일 아이콘을 두 번 클릭하는 것과 동일하며 시스템이 해당 프로그램을 열고 실행합니다.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.png
procAttr: 프로세스 안전 속성
threadAttr: 스레드 안전 속성
InheritHandle: 상속 플래그
CreationFlags: 생성 플래그 #🎜🎜 #
currentDir: 프로세스의 현재 디렉터리 Attr: 생성된 프로그램의 속성 프로세스 종료: #🎜 🎜#사용 가능 win32process.TerminateProcess 함수는 생성된 프로세스를 종료하는 데 사용됩니다. 함수 형식은 다음과 같습니다. TerminateProcess(handle,exitCode)
handle: 동작할 프로세스 핸들
WaitForSingleObject(handle, milisecond)
#🎜 🎜#handle: 연산할 프로세스의 핸들 milisecond: 대기 시간, -1이면 계속 대기합니다.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)
from ctypes import * user32 = windll.LoadLibrary('user32.dll') a = user32.MessageBoxA(0, str.encode('Hello Ctypes!'), str.encode('Ctypes'), 0) print a
더 많은 Python 관련 기술 기사를 보려면
PythonTutorial컬럼을 방문하여 알아보세요!
위 내용은 파이썬에서 다른 프로그램을 호출하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!