您的位置:

Python win32模块简介

Python win32模块是基于win32 API的一个Python扩展模块,它可以让Python程序员可以方便地使用Windows底层API进行Windows编程。Python win32模块提供了很多有用的Windows API函数的Python接口,例如:文件操作、系统信息、进程与线程管理、注册表操作等等。它使Python程序具有了更广泛的应用的潜力,例如对文件系统或Windows本身进行操作。

一、文件操作

Python win32模块提供了丰富的文件操作函数,能够方便地进行文件的读取、写入、复制、移动、修改文件属性等操作。下面简单介绍一些常用的文件操作函数:

#文件操作
import os
import win32file,win32con
 
srcPath = "c:\\Temp\\test.txt"
desPath = "c:\\Test\\test.txt"
 
#文件复制
win32file.CopyFile(srcPath, desPath, 0)
 
#设置文件只读
win32file.SetFileAttributes(desPath,win32con.FILE_ATTRIBUTE_READONLY)
 
#设置文件隐藏
win32file.SetFileAttributes(desPath,win32con.FILE_ATTRIBUTE_HIDDEN)
 
#设置文件普通属性
win32file.SetFileAttributes(desPath,win32con.FILE_ATTRIBUTE_NORMAL)
 
#删除文件
os.remove(desPath)

二、系统信息

Python win32模块提供了一些方便获取系统信息的函数,例如:获取CPU信息、硬盘信息、内存信息等等。下面简单介绍一些常用的系统信息函数:

#系统信息
import win32api,win32com.client
 
#获取CPU信息
print("CPU个数: ", win32api.GetSystemInfo() ['NumberOfProcessors'])

#获取硬盘信息
disk_usage = win32api.GetDiskFreeSpaceEx("C:\\")
print("C盘可用空间:%d KB" % (disk_usage[0] / 1024))

#获取内存信息
wmi = win32com.client.GetObject("winmgmts:")
MemoryTotalSize = wmi.ExecQuery("Select * from Win32_OperatingSystem")[0].TotalVisibleMemorySize
print("物理内存总量:%d KB" % (MemoryTotalSize / 1024))

三、进程与线程管理

Python win32模块提供了很多方便的进程管理和线程管理函数,它能够方便地创建、结束和查询进程和线程的状态等信息。下面简单介绍一些常用的进程和线程管理函数:

#进程管理
import win32process
 
#创建进程
pid = win32process.CreateProcess("C:\\Windows\\System32\\notepad.exe","","",None,0,win32process.CREATE_NEW_CONSOLE,None,None,win32process.STARTUPINFO())
print("进程PID:",pid)

#结束进程
win32process.TerminateProcess(pid,0)

#获取系统所有进程PID
PID_List = list(p.ID for p in win32process.EnumProcesses())

#线程管理
import win32api,win32con
 
#创建线程
handle = win32api.CreateThread(None, 0,func,(),0, None)

#挂起线程
win32api.SuspendThread(handle)

#继续执行线程
win32api.ResumeThread(handle)

四、注册表操作

Python win32模块提供了方便操作注册表的函数,它能够轻松地进行注册表的读取、写入、修改和删除操作。下面简单介绍一些常用的注册表操作函数:

#注册表操作
import winreg
 
#打开或创建注册表项
key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, 'Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings')
 
#写入注册表项
winreg.SetValue(key, "ProxyEnable", winreg.REG_DWORD, 1)
 
#读取注册表项
value, type = winreg.QueryValueEx(key, "ProxyEnable")
print(value, type)
 
#删除注册表项
winreg.DeleteValue(key, "ProxyEnable")

Python win32模块为Python程序员提供了一个方便、高效的Windows编程工具,它能够方便地操作系统、文件系统和注册表等Windows系统资源。这些函数为Python程序员在使用Python进行Windows编程时提供了极大的帮助。