os模块
os:
包含了普遍操作系统的功能
import os
# 获取操作系统类型 nt->windows posix->Linux、Unix或Mac OS X
print(os.name)
# 打印操作系统的详细信息(windows不支持)
print(os.unname())
# 获取操作系统中的所有环境变量
print(os.environ)
# 获取操作系统中的指定环境变量
print(os.environ.get("FPS_BROWSER_APP_PROFILE_STRING"))
# 获取当前目录
print(os.curdir)
# 获取当前工作目录,即当前python脚本所在的目录
print(os.getcwd())
# 以列表的形式返回指定目录下的所有的文件
print(os.listdir(r"D:\黑客\python绝技heike\sublime"))
# 在当前目录下创建新目录
os.mkdir("sunck")
os.mkdir(r"D:\黑客\python绝技heike\sublime\11")
# 删除目录
os.rmdir("sunck")
os.rmdir(r"D:\黑客\python绝技heike\sublime\11")
# 获取文件的属性
print(os.stat("os模块.py"))
# 重命名
os.rename("test.txt", "kaige.txt")
# 删除普通文件
os.remove("kaige.txt")
# 运行shell命令
os.system("notepad")
os.system("write")
os.system("mspaint")
os.system("msconfig")
os.system("shutdown -s -t 500")
os.system("shutdown -a")
os.system("taskkill /f /im notepad.exe")
# 有些方法存在os模块里,还有些存在os.path
# 查看当前的绝对路径
print(os.path.abspath("./kaige"))
# 拼接路径
p1 = r"D:\黑客\python绝技heike\sublime"
p2 = "sunck"
# 注意:
# 参数2里不要有斜杠
print(os.path.join(p1, p2))
p3 = "/root/sunck/home"
p4 = "kaige"
# /root/sunck/home/kaige
print(os.path.join(p3, p4))
# 拆分路径
path2 = r"D:\黑客\python绝技heike\sublime\11.txt"
print(os.path.split(path2))
# 获取扩展名
print(os.path.splitext(path2))
# 判断是否是目录
print(os.path.isdir(path2))
# 判断文件是否存在
print(os.path.isfile(path2))
# 判断目录是否存在
path4 = r"D:\黑客\python绝技heike\sublime"
print(os.path.exists(path4))
# 获得文件大小(字节)
path5 = r"D:\黑客\python绝技heike\sublime\实验室.py"
print(os.path.getsize(path5))
# 获取文件的目录
print(os.path.dirname(path5))
# 获取文件名
print(os.path.basename(path5))
窗口控制
控制窗体的显示和隐藏
import win32con
import win32gui
import time
# 找出窗体编号 类 名
QQWin = win32gui.FindWindow("TXGuiFoundation", "QQ")
# 隐藏窗体
win32gui.ShowWindow(QQWin, win32con.SW_HIDE)
# 显示窗体
win32gui.ShowWindow(QQWin, win32con.SW_SHOW)
谷歌新建标签页一闪一闪
while True:
QQWin = win32gui.FindWindow("Chrome_WidgetWin_1", "百度一下,你就知道 - Google Chrome")
win32gui.ShowWindow(QQWin, win32con.SW_HIDE)
time.sleep(1)
win32gui.ShowWindow(QQWin, win32con.SW_SHOW)
time.sleep(1)
控制窗体的位置和大小
import win32con
import win32gui
import time
import random
QQWin = win32gui.FindWindow("TXGuiFoundation", "QQ")
# 参数1:控制的窗体
# 参数2:大致方位HWND_TOPMOST上方
# 参数3:位置x
# 参数4:位置y
# 参数5:长度
# 参数6:宽度
while True:
x = random.randrange(900)
y = random.randrange(600)
win32gui.SetWindowPos(QQWin,win32con.HWND_TOPMOST, x, y, 300, 300, win32con.SWP_SHOWWINDOW)
语音合成
import time
# 系统客户端
import win32com.client
dehua = win32com.client.Dispatch('SAPI.SPVOICE')
while 1:
dehua.Speak("sunck is a handsome man")
time.sleep(5)
内存修改
# 进程模块
import win32process
# 系统
import win32con
import win32gui
import win32api
import ctypes
PROCESS_ALL_ACCESS = (0x000F0000|0x00100000|0xFFF)
# 找窗体
win = win32gui.FindWindow("MainWindow", "植物大战僵尸中文版")
# 根据窗体找窗口
hid, pid = win32process.GetWindowThreadProcessId(win)
# 以最高权限打开进程
p = win32api.OpenProcess(PROCESS_ALL_ACCESS, False, pid)
# 加载内核模块
md = ctypes.windll.LoadLibrary("C:\\Windows\\System32\\kernel32")
data = ctypes.c_long()
# 读取内存
md.ReadProcessMemory(int(p), 311944712, ctypes.byref(data), 4, None)
print("data = ", data)
# 新值
newData = ctypes.c_long(10000)
# 修改
md.WriteProcessMemory(int(p), 311944712, ctypes.byref(newData), 4, None)