分享两个小程序
程序员文章站
2023-10-15 14:11:53
小编也不知道大家能不能用的到,我只是把我学到的知识分享出来,有需要的可以看一下。python本身就是一个不断更新改进的语言,不存在抄袭,有需要就可以拿过来用,在用的过程中,你发现可以用另外一种方法把它实现,就可以把代码做进一步的优化,然后分享出来,这样python会变的越来越实用。今天心情不好,分享 ......
小编也不知道大家能不能用的到,我只是把我学到的知识分享出来,有需要的可以看一下。python本身就是一个不断更新改进的语言,不存在抄袭,有需要就可以拿过来用,在用的过程中,你发现可以用另外一种方法把它实现,就可以把代码做进一步的优化,然后分享出来,这样python会变的越来越实用。今天心情不好,分享两个小程序就结束!
邮箱分类存储
1 #! /usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # __author__ = "dylan" 4 5 6 ''' 新建一个txt文件存储网络爬取的邮箱账号和密码,存储方式如下(具体问题具体分析,这里只是举个例子): 7 data: 8 账号 密码 9 laphae757878@163.com----198587 10 sgdjhgawue@126.com----198587 11 eiuuweyi34@qq.com----198587 12 res: 13 126.txt: 14 sgdjhgawue 15 163.txt: 16 laphae757878 17 qq.txt: 18 eiuuweyi34 19 ''' 20 21 22 import os 23 import collections 24 25 def work(path): 26 respath = r"存放取出数据的路径" # 如c:\python\res 27 with open(path, "r") as f: 28 while true: 29 lineinfo = f.readline() 30 if len(lineinfo) < 5: 31 break 32 emailstr = lineinfo.split("----")[0] # 邮箱@前的字段 33 filetype = emailstr.split("@")[1].split(".")[0] # 邮箱类型的目录 如c:\python\res\163 34 dirstr = os.path.join(respath, filetype) 35 if not os.path.exists(dirstr): 36 os.mkdir(dirstr) # 不存在,就创建这个目录 37 filepath = os.path.join(dirstr, filetype + ".txt") # 为每一个邮箱类型创建一个txt文件,然后把对应的邮箱写进去 38 with open(filepath, "w") as fw: 39 fw.write(emailstr + "\n") 40 41 def getalldirqueue(path): 42 queue = collections.deque() 43 queue.append(path) 44 while len(queue) != 0: 45 dirpath = queue.popleft() 46 filelist = os.listdir(dirpath) 47 for filename in filelist: 48 fileabspath = os.path.join(dirpath, filename) 49 if os.path.isdir(fileabspath): 50 queue.append(fileabspath) 51 else: 52 work(fileabspath) # 处理普通文件 53 54 getalldirqueue(r"数据路径") # 如c:\python\data
语音控制系统打开或关闭系统应用程序
1 from win32com.client import constants 2 import win32com.client 3 import pythoncom 4 import os 5 6 speaker = win32com.client.dispatch("sapi.spvoice") 7 8 9 class speechrecognition: 10 def __init__(self,wordstoadd): 11 self.speaker=win32com.client.dispatch("sapi.spvoice") 12 self.listener=win32com.client.dispatch("sapi.spsharedrecognizer") 13 self.context=self.listener.createrecocontext() 14 self.grammar=self.context.creategrammar() 15 self.grammar.dictationsetstate(0) 16 self.wordsrule=self.grammar.rules.add("wordsrule",constants.sratoplevel+constants.sradynamic,0) 17 self.wordsrule.clear() 18 [self.wordsrule.initialstate.addwordtransition(none,word)for word in wordstoadd] 19 self.grammar.rules.commit() 20 self.grammar.cmdsetrulestate("wordsrule",1) 21 self.grammar.rules.commit() 22 self.eventhandler=contextevents(self.context) 23 self.say("startedsuccessfully") 24 25 def say(self,phrase): 26 self.speaker.speak(phrase) 27 28 29 class contextevents(win32com.client.getevents("sapi.spsharedrecocontext")): 30 def onrecognition(self,streamnumber,streamposition,recognitiontype,result): 31 newresult=win32com.client.dispatch(result) 32 print("说:",newresult.phraseinfo.gettext()) 33 s = newresult.phraseinfo.gettext() 34 if s == "记事本": 35 os.system("start notepad") 36 elif s == "画图板": 37 os.system("start mspaint") 38 39 if __name__ == "__main__": 40 speaker.speak("语音识别开启") 41 wordstoadd = ["关机", "取消关机", "记事本", "画图板", "写字板", "设置", "关闭记事本"] 42 speechreco = speechrecognition(wordstoadd) 43 while true: 44 pythoncom.pumpwaitingmessages()