一键启动多个程序
每天打开电脑要启动的一般都是那几个程序,于是用python写了个小工具一键启动他们;
要启动的软件使用excel配置,读取excel的方法我直接百度使用别人写好的方法,py读取Excel表数据
import xlrd class ExcelUtil(): def __init__(self, filePath, sheetName): self.data = xlrd.open_workbook(filePath) self.table = self.data.sheet_by_name(sheetName) # 获取第一列的key值 self.keys = self.table.row_values(0) # 获取总行数 self.rowNum = self.table.nrows # print(u"总行数:", self.rowNum) # 获取总列数 self.colNum = self.table.ncols # print(u"总列数:", self.colNum) # 读取Excel表中值 def dict_data(self, ): if self.rowNum <= 1: print("无数据可取") return [] else: # 创建一个列表将数据放入 r = [] j = 1 for i in range(self.rowNum - 1): s = {} # 从第二行取对应values值 values = self.table.row_values(j) for x in range(self.colNum): s[self.keys[x]] = values[x] r.append(s) j += 1 return r def read_excel(filePath, sheetName): data = ExcelUtil(filePath, sheetName) return data.dict_data()
接下来就是使用读取到的数据
import pynput import time import os from multiprocessing import Process, freeze_support # 进程 from excel import * try: # from win32ctypes.pywin32 import pywintypes # noqa: F401 # from win32ctypes.pywin32 import win32api import pywintypes import win32api except ImportError: pass keyboard = pynput.keyboard.Controller() filePath = "./config.xlsx" Sheet1 = read_excel(filePath, "Sheet1") Sheet2 = read_excel(filePath, "Sheet2") # 移走鼠标 防止按回车时连续触发 mouse = pynput.mouse.Controller() mouse.position = (1216, 538) mouse.press(pynput.mouse.Button.left) mouse.release(pynput.mouse.Button.left) def isNumber(val): try: int(val) return True except ValueError: return False def star_exe(): # Sheet1其它方法读取的excel数据 for item in Sheet1: if item["unuse"] == "": # 执行命令行 win32api.ShellExecute(0, "open", item["url"], "", '', 1) if item["is_enter"] == 1.0: # 延时2秒 time.sleep(2) # 按下回车 keyboard.press(pynput.keyboard.Key.enter) # 松开回车 keyboard.release(pynput.keyboard.Key.enter) if isNumber(item["s1"]): time.sleep(int(item["s1"])) else: time.sleep(1) else: pass def run_cmd(): cmd_list = [] for item in Sheet2: if item["unuse"] == "": url = "" if item["url"] != "": url = "cd " + item["url"] + "&&" + item["url"][0] + ":&&" cmd = url + item["cmd"] p = Process(target=cmd_call, args=(cmd,)) cmd_list.append(p) p.start() else: pass for c in cmd_list: c.join() def cmd_call(s): os.system(s) if __name__ == '__main__': # 防止多次执行程序 freeze_support() p_list = [] p1 = Process(target=run_cmd) p2 = Process(target=star_exe) p_list.append(p1) p_list.append(p2) p1.start() p2.start() for i in p_list: i.join()
使用方法:
建立一个名为config的excel文件
sheet1中可以配置要启动的软件或者网址
sheet2中可以配置一些用命令行运行的东西