00讀取csv文件
import csv
def readCsv(path):infolist = []with open (path,"r") as f:allFileInfo = csv.reader(f)print(allFileInfo)for row in allFileInfo:infolist.append(row)return infolistpath =r"D:\xiazaipan\第1章 Python語言基礎\15、自動化辦公與鼠標鍵盤模擬\2、讀寫csv文件\000001.csv"
info = readCsv(path)
# [[],[],[]]
01寫csv文件
import csvdef writeCsv(path,data):with open(path,"w")as f:write = csv.writer(f)for rowData in data:print("*********")write.writerow(rowData)path =r"D:\xiazaipan\第1章 Python語言基礎\15、自動化辦公與鼠標鍵盤模擬\2、讀寫csv文件\000003.csv"
writeCsv(path, [[1,2,3],[4,5,6],[7,8,9]])
02讀取pdf文件
import sys
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 PDFTextExtractionNotAlloweddef readPDF(path,topath):#以二進制打開pdf文件f = open(path,"rb")#創建一個PDF文檔分析器parse = PDFParser(f)#創建PDF文檔pdfFile = PDFDocument()#鏈接 分析器與文檔對象 互相連接parse.set_document(pdfFile)pdfFile.set_parser(parse)#提供初始化密碼pdfFile.initialize()#檢測文檔是否提供txt轉換if not pdfFile.is_extractable:raise PDFTextExtractionNotAllowedelse:#解析數據#數據管理器manager = PDFResourceManager()#創建一個PDF設備的對象laparams= LAParams()device = PDFPageAggregator(manager,laparams=laparams)#解釋器對象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)):with open(topath,"a")as f:str = x.get_text()# print(str)f.write(str+"\n")topath=r"D:\xiazaipan\第1章 Python語言基礎\15、自動化辦公與鼠標鍵盤模擬\a.txt"
path =r"D:\xiazaipan\第1章 Python語言基礎\16、py2與py3的區別和測試\0-作業\文件的封裝\sunck.pdf"
readPDF(path,topath)
03播放音樂
#pip install pygameimport time
import pygame#音樂路徑
filePath = r"D:\xiazaipan\第1章 Python語言基礎\15、自動化辦公與鼠標鍵盤模擬\7、播放音樂\res\0.mp3"# 初始化
pygame.mixer.init()#加載音樂
track = pygame.mixer.music.load(filePath)#播放
pygame.mixer.music.play()#
time.sleep(5)
pygame.mixer.music.pause()#暫停
#停止
pygame.mixer.music.stop()
04修改背景圖片
# win鍵加R ->regedit ->HKEY_CURRENT_USER->
#Control panel->Desktop->import win32api
import win32con
import win32guidef setWallPaper(path):#打開注冊表reg_key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)#2拉伸 0居中 6適應 10填充win32api.RegSetValueEx(reg_key,"WallpaperStyle",0,win32con.REG_SZ,"6")## win32api.RegSetValueEx(reg_key,)# win32api.RegSetValueEx(reg_key,"WallPaper" )# win32con.SPIF_SENDWININICHANGE立即生效win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,path,win32con.SPIF_SENDWININICHANGE)# 圖片地址
setWallPaper(r"")
05整蠱程序
import time
import pygame
import win32api
import win32con
import win32gui
import threadingdef go():pygame.mixer.init()while 1:for i in range(5):filePath =\r"H:\QIANfeng code\17自動化辦公鼠標鍵盤模擬\res"+"\\"+str(i)+".mp3"track = pygame.mixer.music.load(filePath)pygame.mixer.music.play()time.sleep(10)pygame.mixer.music.stop()def setWallPaper(path):reg_key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)win32api.RegSetValueEx(reg_key,"WallpaperStyle",0,win32con.REG_SZ,"6")win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,path,win32con.SPIF_SENDWININICHANGE)
#線程
th = threading.Thread(target = go ,name ="LoopThread")
th.start()
while True:go()for i in range(9):filePath = r"H:\QIANfeng code\17自動化辦公鼠標鍵盤模擬\res1"+"\\"+str(i)+".jpeg"print(filePath)setWallPaper(filePath)time.sleep(5)
06鍵盤模擬
import win32con
import win32api
import time'''
win32api.keybd_event(91,0,0,0)
time.sleep(0.1)
win32api.keybd_event(91,0,win32con.KEYEVENTF_KEYUP,0)
'''
while 1 :win32api.keybd_event(91,0,0,0)time.sleep(0.1)win32api.keybd_event(77,0,0,0)time.sleep(0.1)win32api.keybd_event(77,0,win32con.KEYEVENTF_KEYUP,0)win32api.keybd_event(91, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(3)
07語音控制游戲
08鼠標模擬
import win32con
import win32api
import timewin32api.SetCursorPos([30,40])
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)
09讀取doc與docx文件
import win32com
import win32com.clientdef readWordFile(path):#調用系統word功能,可以處理doc和 docx兩種文件mw = win32com.client.Dispatch("Word.Application")#打開文件doc = mw.Documents.Open(path)for paragraph in doc.Paragraphs:line = paragraph.Range.Textprint(line)#關閉文件doc.Close()#退出文件mw.Quit()path = r"D:\xiazaipan\第1章 Python語言基礎\15、自動化辦公與鼠標鍵盤模擬\4、word自動化辦公\sunck.doc"
readWordFile(path)
10讀取doc與docx文件并寫入其他文件
import win32com
import win32com.clientdef readWordFile(path):mw = win32com.client.Dispatch("Word.Application")doc = mw.Documents.Open(path)#將word的數據保存到另一個文件doc.SaveAs(toPath,2)#2表示txt文件doc.Close()mw.Quit()toPath = r"D:\xiazaipan\第1章 Python語言基礎\15、自動化辦公與鼠標鍵盤模擬\4、word自動化辦公\1.txt"
11創建word文件
import win32com
import win32com.client
import osdef makeWordFile(path,name):word = win32com.client.Dispatch("Word.Application")#創建文檔doc = word.Documents.Add()#文檔可見word.Visible = True#寫內容#從頭開始寫r = doc.Range(0,0)r.InsertAfter("親愛的"+name+"\n")r.InsertAfter("想你")#存儲文件doc.SaveAs(path)#關閉文件doc.Close()#退出文件# word.Quit()names = ["zhangsan","lisi","wangwu"]
for name in names:path = os.path.join(os.getcwd(),name)makeWordFile(path,name)path = r"D:\xiazaipan\第1章 Python語言基礎\15、自動化辦公與鼠標鍵盤模擬\4、word自動化辦公"
12讀取xlsx文件
#xlsx xls
#openpyxl->xlsxfrom openpyxl.reader.excel import load_workbookdef readXlsxFile(path):file= load_workbook(filename = path)print(file.get_sheet_names())sheets = file.get_sheet_names()#拿出一個表格sheet = file.get_sheet_by_name(sheets[0])#最大行數print(sheet.max_row)#最大列數print(sheet.max_column)#表名print(sheet.title)for lineNum in range(1,sheet.max_row+1):print(lineNum)lineList = []for columnNum in range(1,sheet.max_column):#拿數據value = sheet.cell(row=lineNum,column = columnNum).value# if value!=None:lineList.append(value)print(lineList)path= r"D:\xiazaipan\第1章 Python語言基礎\15、自動化辦公與鼠標鍵盤模擬\5、excel自動化辦公\1.xlsx"
readXlsxFile(path)
13返回整體xlsx數據
# xlsx xls
# openpyxl -> xlsxfrom openpyxl.reader.excel import load_workbookdef readXlsxFile(path):dic = {}file = load_workbook(filename=path)sheets = file.get_sheet_names()print(len(sheets))for sheetName in sheets:sheet = file.get_sheet_by_name(sheetName)#一張表的所有數據sheetInfo = []for lineNum in range(1, sheet.max_row + 1):lineList = []for columnNum in range(1, sheet.max_column + 1):value = sheet.cell(row=lineNum, column=columnNum).valuelineList.append(value)sheetInfo.append(lineList)#將一張表的數據存到字典dic[sheetName] = sheetInforeturn dic#不能處理xls文件
path = r""
dic = readXlsxFile(path)
print(dic["安力博發"])
print(len(dic))
14返回xls和xlsx文件內容
#有序字典
from collections import OrderedDict
#讀取數據
from pyexcel_xls import get_datadef readXlsAndXlsxFile(path):dic = OrderedDict()#抓取數據xdata = get_data(path)for sheet in xdata:dic[sheet]= xdata[sheet]return dicpath= r"D:\xiazaipan\第1章 Python語言基礎\15、自動化辦公與鼠標鍵盤模擬\5、excel自動化辦公\1.xlsx"
dic = readXlsAndXlsxFile(path)
print(dic)
print(len(dic))
15寫入xls文件
#有序字典
from collections import OrderedDict
#讀取數據
from pyexcel_xls import get_data
from pyexcel_xls import save_datadef makeExcelFile(path,data):dic = OrderedDict()for sheetName,sheetValue in data.items():d= {}d[sheetName]=sheetValuedic.update(d)save_data(path,dic)#只能寫xls
path= r"D:\xiazaipan\第1章 Python語言基礎\15、自動化辦公與鼠標鍵盤模擬\5、excel自動化辦公\11.xls"
makeExcelFile(path,{"表1":[[1,2,3],[4,5,6]],"表2":[[11,22,33],[44,55,66]]})
16寫ppt
import win32com
import win32com.clientdef makeppt(path):ppt = win32com.client.Dispatch("PowerPoint.Application")ppt.Visible=True#增加一個文件pptFile = ppt.Presentations.Add()#創建頁 參數1為頁數 參數2為主題類型page1 = pptFile.Slides.Add(1,1)#正標題副標題 就兩個t1 = page1.Shapes[0].TextFrame.TextRanget1.Text = "Liuwang "t2 = page1.Shapes[1].TextFrame.TextRanget2.Text = "Liuwang is a good man "# 第二頁page2 = pptFile.Slides.Add(2, 2)t3 = page2.Shapes[0].TextFrame.TextRanget3.Text = "LiuGE "t4 = page2.Shapes[1].TextFrame.TextRanget4.Text = "LiuGE is a good man "#保存pptFile.SaveAs(path)pptFile.Close()ppt.Quit()path = r"D:\xiazaipan\第1章 Python語言基礎\15、自動化辦公與鼠標鍵盤模擬\4、word自動化辦公"
makeppt(path)
?