文件树
import tkinter
import os
from tkinter import ttk
win = tkinter.Tk()
win.title("fang")
win.geometry("600x400")
from treeWindows import TreeWindows
from infoWindows import InfoWindows
path=r"E:\pycharm project/tki·nter2"
infoWin = InfoWindows(win)
treeWin = TreeWindows(win,path,infoWin)
win.mainloop()
处理文件(CSV,PDF,word)
import importlib
importlib.reload(sys)
from pdfminer.pdfparser import PDFParser,PDFDocument
from pdfminer.pdfinterp import PDFResourceManager,PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal,LAParams
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed
import win32com
import win32com.client
class DealFile(object):
def readCsv(self,path):
infoList = []
with open(path, "r") as f:
allFileInfo = csv.reader(f)
for row in allFileInfo:
infoList.append(row)
return infoList
def writeCsv(self,path, data):
with open(path, "w") as f:
writer = csv.writer(f)
for rowData in data:
writer.writerow(rowData)
def readPDF(self,path, callback,toPath):
f = open(path, "rb")
parser = PDFParser(f)
pdfFile = PDFDocument()
parser.set_document(pdfFile)
pdfFile.set_parser(parser)
pdfFile.initialize('')
if not pdfFile.is_extractable:
raise PDFTextExtractionNotAllowed
else:
manager = PDFResourceManager()
laparam = LAParams()
device = PDFPageAggregator(manager, laparams=laparam)
interpreter = PDFPageInterpreter(manager, device)
for page in pdfFile.get_pages():
interpreter.process_page(page)
layout = device.get_result()
for x in layout:
if (isinstance(x, LTTextBoxHorizontal)):
if toPath == "":
str = x.get_text()
if callback != None:
callback(str)
else:
print(str)
else:
with open(toPath, "a") as f:
str = x.get_text()
f.write(str + "\n")
def readWordfile(path):
mw = win32com.client.Dispatch("Word.Application")
doc = mw.Documents.Open(path)
for paragraph in doc.Paragraphs:
line = paragraph.Range.Text
print(line)
doc.Close()
mw.Quit()
return line
def readWordfileToOtherfile(path, topath):
mw = win32com.client.Dispatch("Word.Application")
doc = mw.Documents.Open(path)
doc.SaveAs(topath, 2)
doc.Close()
mw.Quit()
读取xlsx文件
from openpyxl.reader.excel import load_workbook
def readXlsxFile(path):
file = load_workbook(filename = path)
sheets = file.get_sheet_names()
sheet = file.get_sheet_by_name(sheets[1])
for lineNumber in range(1,sheet.max_row+1):
lineList = []
for columnNumber in range(1,sheet.max_column+1):
value = sheet.cell(row=lineNumber,column=columnNumber).value
lineList.append(value)
print(lineList)
path = r"E:\pycharm project\自动化办公和鼠标键盘模拟\p\1.xlsx"
readXlsxFile(path)
from openpyxl.reader.excel import load_workbook
def readXlsxFile(path):
dic = {}
file = load_workbook(filename = path)
sheets = file.get_sheet_names()
for sheetName in sheets:
sheet = file.get_sheet_by_name(sheetName)
sheetInfo = []
for lineNumber in range(1,sheet.max_row+1):
lineList = []
for columnNumber in range(1,sheet.max_column+1):
value = sheet.cell(row=lineNumber, column=columnNumber).value
lineList.append(value)
sheetInfo.append(lineList)
dic[sheetName] = sheetInfo
return dic
path = r"E:\pycharm project\自动化办公和鼠标键盘模拟\p\1.xlsx"
dic = readXlsxFile(path)
print(dic)
tree_windows(窗口树)
import tkinter
from tkinter import ttk
import os
class TreeWindows(tkinter.Frame):
def __init__(self,master,path,otherWin):
frame = tkinter.Frame(master)
frame.grid(row=0,column=0)
self.otherWin = otherWin
self.tree = ttk.Treeview(frame)
self.tree.pack(side=tkinter.LEFT,fill=tkinter.Y)
tempPath = self.getLastPath(path)
print(tempPath)
root = self.tree.insert("","end",text=tempPath,open=True,values=(path))
self.loadTree(root,path)
self.sy = tkinter.Scrollbar(frame)
self.sy.pack(side=tkinter.RIGHT,fill=tkinter.Y)
self.sy.config(command=self.tree.yview)
self.tree.config(yscrollcommand=self.sy.set)
self.tree.bind("<<TreeviewSelect>>",self.func)
def func(self,event):
self.v = event.widget.selection()
for sv in self.v:
file = self.tree.item(sv)["text"]
self.otherWin.ev.set(file)
apath = self.tree.item(sv)["values"]
print(apath)
lastPath = self.getLastPath(apath)
if not os.path.isdir(lastPath):
f = open(apath,"r")
allFileInfo = str(f.read())
self.otherWin.tv.insert(tkinter.INSERT,allFileInfo)
def loadTree(self,parent,parentpath):
for fileName in os.listdir(parentpath):
absPath = os.path.join(parentpath,fileName)
tree1 = self.tree.insert(parent,"end",text=self.getLastPath(absPath),values=(absPath))
if os.path.isdir(absPath):
self.loadTree(tree1,absPath)
def getLastPath(self,path):
pathList = os.path.split(path)
return pathList[-1]
键盘模拟
import win32con
import win32api
import time
'''
win32api.keybd_event(91,0,0,0)
time.sleep(1)
win32api.keybd_event(91,0,win32con.KEYEVENTF_KEYUP)
'''
while True:
win32api.keybd_event(91, 0, 0, 0)
time.sleep(1)
win32api.keybd_event(77, 0, 0, 0)
time.sleep(1)
win32api.keybd_event(77, 0, win32con.KEYEVENTF_KEYUP)
win32api.keybd_event(91, 0, win32con.KEYEVENTF_KEYUP)
time.sleep(3)
鼠标模拟
import win32con
import win32api
import time
win32api.SetCursorPos([100,160])
time.sleep(0.1)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0,0)