Python初步了解(八)

来源:互联网 发布:整容后悔 知乎 编辑:程序博客网 时间:2024/06/01 08:18

初级的了解就这些了,接下来就是个人喜欢的学习了,可以看网上的项目进行实际学习,我个人喜欢从小项目练手,逐渐研究大点的,Python能做游戏,我喜欢;Python能搞数据,我喜欢;Python能搞运维,这我就不是爸爸了么

一、OS模块

通过代码加注释理解

import os                        #导入os模块sprint(os.environ())              #输出系统环境变量# print(os.environ.get('path'))  #输出系统环境变量# print(os.curdir)path = r'C:\Users\xlg\Desktop\县区列表list.txt'# print(os.path.splitext(path))# print(os.path.exists(path))# print(os.path.dirname(path))# print(os.path.basename(path))# print(os.path.abspath('./1os.py'))# print(os.path.split(path))

二、堆栈队列(代码模拟)

列表实现栈的结构
#列表实现栈的结构mylist = []str1 = 'abcedfghi'#进栈的顺序for i in str1:    mylist.append(i)#出栈的顺序print(mylist.pop())#栈内结果print(mylist)~~~#### 利用栈的原理实现,文件内文件展示~~~import ospath = r'C:\...'                                #目标文件夹位置filePathList = []filePathList.append(path)while len(filePathList) != -1:    localPath = filePathList.pop()    localListDir = os.path.listdir(localPath)   #将列表该目录下的文件名返回列表    for fileName in localListDir:        newPath = os.path.join(localPath,fileName)        if os.path.isdir(newPath):            filePathList.append(newPath)        elif os.path.isfile(newPath)            print('文件信息',fileName)

队列代码演示

import collectionsque = collections.deque()   #使用队列str1 = 'abcde'for i in str1:    que.append(i)print(que.popleft())print(que)#结果:#a#deque(['b', 'c', 'd', 'e', 'f', 'g'])

利用队列原理,实现文件夹中所有文件名显示

import collectionsimport ospath = 'C:\....'                            #文件夹目标路径que = collections.deque()                   #声明队列que.append(path)while len(que) != 0:    localPath = que.popleft    fileList = os.path.listdir(localPath)   #获取列表形式文件名    for fileName in filelist:        newPath = os.path.join(path,fileName)        if os.path.isdir():            que.append(newPath)        elif os.path.isfile():            print('文件名',fileName)~~~## 三、装饰器~~~#原理代码def demo(x):    def inner(arg):        print('demodemodemo',arg)        x(arg)    return innerdef func(arg):    print('funcfuncfunc',arg)func = demo(func)func(30)#结果:#demodemodemo 30#funcfuncfunc 30~~~

利用装饰器实现以上代码

def demo(x):    def inner(arg):        print('demodemodemo',arg)        x(arg)    return inner@demo  # == func = demo(func)def func(arg):    print('funcfuncfunc',arg)func(30)#结果:#demodemodemo 30#funcfuncfunc 30

四、时间模块

import timeprint(time.strftime('%Y-%m-%d %H:%M:%S'))#结果 2017-08-12 10:18:04mytime = "2017-08-11 20:48:53"#返回时间的元组x = time.strptime(mytime,"%Y-%m-%d %H:%M:%S") # 元组转 中国时间格式print(time.strftime('%Y-%m-%d %H:%M:%S',x))#将时间的元组 转换成 秒数mytimestime = time.mktime(x)print(mytimestime)

小实例1:更改植物大战僵尸(阳光值)

1、准备文件

文件名 注意事项 解决方案 植物大战僵尸文件 pywin32-221.win32-py3.6.exe 需要确认安装成功 若安装失败,修改python、该文件路径下的中文字符 Spy.exe 用于捕捉标题、类 辅助工具获取阳光地址

2、整理数据

#标题:植物大战僵尸中文版#类:MainWindow#最高权限值:(0x000F0000|0x00100000|0xFFF)~~~3、编写代码~~~import win32processimport win32guiimport cytpesimport win32api#查找窗体window = win32gui.FIndWindow('MainWindow','植物大战僵尸中文版')#当前窗体进程编号hid,pid = win32process.GetWindowThreadProcessId(window)#用最高权限打开进程p = win32api.OpenProcess((0x000F0000|0x00100000|0xFFF),False,pid)#C语言模块date = ctypes.c_long()#加载模块localdll = ctypes.windll.LoadLibray('C:/Windows/System32/kernel32.dll')#获取当前进程内存  234930512(阳光地址)localdll.ReadProcessMemory(int(p),234930512,ctypes.byref(date),4,None)#读取阳光值print(date.value)#改写当前进程内存localdll.WriteProcessMemory(int(p),234930512,ctypes.byref(newdate),4,None)

小实例2:控制QQ窗体

代码实例:

import win32guiimport win32conimport randomqq = win32gui.FindWindow('TXGuiFoundation','QQ')#第一种for i in range(500):    win32gui.SetWindowPos(qq,win32con.HWD_TOPMOST,0,0,i,i,win32con.SWP_SHOWWINDOW)#第二种效果while True:    x = random.randrange(1000)    y = random.randrange(1000)    win32gui.SetWindowPos(qq, win32con.HWND_TOPMOST, x, 10, 400, 400, win32con.SWP_SHOWWINDOW)    win32gui.SetWindowPos(feiq, win32con.HWND_TOPMOST, x, 300, 400, 400, win32con.SWP_SHOWWINDOW)#第三种效果while True:    win32gui.ShowWindow(qq,win32con.SW_HIDE)    time.sleep(1)    win32gui.ShowWindow(qq,win32con.SW_SHOW)

小实例3:文本语音输出

import win32com.clientspeaker = win32com.client.Dispatch('SAPI.SPVOICE')speaker.Speak('文本内容')
原创粉丝点击