最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python+PyAutoGUI實現(xiàn)的Windows自動化辦公腳本

 更新時間:2026年05月13日 08:33:52   作者:yuanpan  
在日常辦公場景中,很多重復(fù)動作并不復(fù)雜,卻非常消耗時間,本文面向 Python 自動化辦公方向?qū)W習(xí)者,重點(diǎn)演示在 Windows 上如何用 pyautogui 完成鼠標(biāo)移動與點(diǎn)擊、鍵盤輸入、屏幕截圖、自動打開記事本輸入文字,以及自動化重復(fù)操作,需要的朋友可以參考下

引言

在日常辦公場景中,很多重復(fù)動作并不復(fù)雜,卻非常消耗時間:打開軟件、輸入固定內(nèi)容、截圖留存、重復(fù)點(diǎn)擊、批量錄入、定時執(zhí)行某個流程。Python 的 pyautogui 庫可以模擬鼠標(biāo)、鍵盤和屏幕操作,讓我們用腳本完成這些機(jī)械性任務(wù)。

本文面向 Python 自動化辦公方向?qū)W習(xí)者,重點(diǎn)演示在 Windows 上如何用 pyautogui 完成鼠標(biāo)移動與點(diǎn)擊、鍵盤輸入、屏幕截圖、自動打開記事本輸入文字,以及自動化重復(fù)操作。

說明:本文示例適合學(xué)習(xí)和個人辦公輔助。正式用于企業(yè)流程前,應(yīng)先在測試環(huán)境驗證,避免誤操作真實業(yè)務(wù)系統(tǒng)。

1. pyautogui 庫介紹

pyautogui 是一個跨平臺 GUI 自動化庫,可以讓 Python 控制鼠標(biāo)、鍵盤和屏幕。它常用于:

  • 自動點(diǎn)擊按鈕、菜單、輸入框
  • 自動輸入文字和快捷鍵
  • 獲取鼠標(biāo)當(dāng)前位置
  • 對屏幕進(jìn)行截圖
  • 按固定流程重復(fù)執(zhí)行操作
  • 輔助 Excel、瀏覽器、記事本、ERP、后臺系統(tǒng)等桌面軟件操作

安裝方式:

pip install pyautogui

如果后續(xù)需要做圖像識別式點(diǎn)擊,還可以配合安裝:

pip install pillow opencv-python

導(dǎo)入方式:

import pyautogui

常用安全配置:

import pyautogui

# 每個 pyautogui 操作后暫停 0.2 秒,降低誤操作風(fēng)險
pyautogui.PAUSE = 0.2

# 啟用故障保護(hù):鼠標(biāo)快速移動到屏幕左上角會拋出異常并停止腳本
pyautogui.FAILSAFE = True

FAILSAFE 非常重要。自動化腳本一旦點(diǎn)擊錯位置,可能連續(xù)執(zhí)行很多錯誤動作。保留這個開關(guān),可以讓你在緊急情況下把鼠標(biāo)移到屏幕左上角中止程序。

2. 鼠標(biāo)移動與點(diǎn)擊

2.1 獲取屏幕尺寸

import pyautogui

width, height = pyautogui.size()
print(f"屏幕寬度:{width}, 屏幕高度:{height}")

2.2 獲取當(dāng)前鼠標(biāo)位置

import pyautogui
import time

print("請在 3 秒內(nèi)把鼠標(biāo)移動到目標(biāo)位置...")
time.sleep(3)

x, y = pyautogui.position()
print(f"當(dāng)前鼠標(biāo)坐標(biāo):({x}, {y})")

這段代碼非常適合用來定位按鈕、輸入框、菜單等界面元素坐標(biāo)。

2.3 移動鼠標(biāo)

import pyautogui

# 將鼠標(biāo)移動到屏幕坐標(biāo) (500, 300),移動過程持續(xù) 0.5 秒
pyautogui.moveTo(500, 300, duration=0.5)

2.4 點(diǎn)擊鼠標(biāo)

import pyautogui

# 左鍵單擊
pyautogui.click(500, 300)

# 雙擊
pyautogui.doubleClick(500, 300)

# 右鍵單擊
pyautogui.rightClick(500, 300)

2.5 拖拽鼠標(biāo)

import pyautogui

# 從當(dāng)前位置拖拽到 (800, 500)
pyautogui.dragTo(800, 500, duration=1, button="left")

如果你要自動化操作一個固定布局的軟件,最簡單的方式就是先記錄關(guān)鍵坐標(biāo),再用 moveTo()click() 組合執(zhí)行。

3. 鍵盤輸入

3.1 輸入英文和數(shù)字

import pyautogui

pyautogui.write("Hello PyAutoGUI", interval=0.05)

interval 表示每個字符之間的輸入間隔。適當(dāng)放慢速度可以提高穩(wěn)定性。

3.2 按單個按鍵

import pyautogui

pyautogui.press("enter")
pyautogui.press("tab")
pyautogui.press("esc")

3.3 快捷鍵組合

import pyautogui

# Ctrl + S 保存
pyautogui.hotkey("ctrl", "s")

# Ctrl + A 全選
pyautogui.hotkey("ctrl", "a")

# Alt + F4 關(guān)閉當(dāng)前窗口
pyautogui.hotkey("alt", "f4")

3.4 中文輸入的注意點(diǎn)

pyautogui.write() 更適合輸入英文、數(shù)字和符號。中文輸入可能受輸入法狀態(tài)影響,穩(wěn)定性不如英文。

在 Windows 自動化辦公中,輸入中文建議使用剪貼板方式:

import pyautogui
import pyperclip

text = "這是一段由 Python 自動輸入的中文內(nèi)容。"
pyperclip.copy(text)
pyautogui.hotkey("ctrl", "v")

需要安裝:

pip install pyperclip

剪貼板粘貼方式通常比逐字模擬鍵盤更穩(wěn)定,尤其適合輸入大段文本。

4. 屏幕截圖

4.1 截取全屏

import pyautogui

img = pyautogui.screenshot()
img.save("screen.png")

4.2 截取指定區(qū)域

import pyautogui

# region 參數(shù)格式:(left, top, width, height)
img = pyautogui.screenshot(region=(100, 100, 600, 400))
img.save("region.png")

截圖在辦公自動化里很常見,例如:

  • 運(yùn)行前后留痕
  • 自動保存系統(tǒng)頁面狀態(tài)
  • 判斷界面是否進(jìn)入目標(biāo)頁面
  • 結(jié)合圖像識別尋找按鈕位置

5. 自動打開記事本輸入文字

下面演示一個完整的小流程:打開 Windows 記事本,輸入一段文字,并保存截圖。

import subprocess
import time
import pyautogui
import pyperclip

pyautogui.PAUSE = 0.2
pyautogui.FAILSAFE = True

# 打開記事本
subprocess.Popen("notepad.exe")
time.sleep(1)

# 使用剪貼板輸入中文,更穩(wěn)定
content = """Windows 自動化辦公腳本測試

這是 Python + PyAutoGUI 自動輸入的內(nèi)容。
它可以模擬鼠標(biāo)、鍵盤,并完成截圖等辦公自動化任務(wù)。
"""

pyperclip.copy(content)
pyautogui.hotkey("ctrl", "v")

# 截圖留存
img = pyautogui.screenshot()
img.save("notepad_result.png")

運(yùn)行后,腳本會自動打開記事本,將文本粘貼進(jìn)去,并在當(dāng)前目錄保存一張截圖。

6. 自動化重復(fù)操作

辦公自動化里最常見的價值來自“重復(fù)操作自動化”。例如重復(fù)點(diǎn)擊按鈕、重復(fù)輸入多條數(shù)據(jù)、重復(fù)打開多個文件。

6.1 重復(fù)點(diǎn)擊

import pyautogui
import time

pyautogui.PAUSE = 0.3

for i in range(5):
    pyautogui.click(500, 300)
    print(f"第 {i + 1} 次點(diǎn)擊完成")
    time.sleep(1)

6.2 批量輸入多行數(shù)據(jù)

import pyautogui
import pyperclip
import time

rows = [
    "張三  研發(fā)部  Python",
    "李四  財務(wù)部  Excel",
    "王五  行政部  Word",
]

time.sleep(3)  # 給用戶留出切換到目標(biāo)輸入框的時間

for row in rows:
    pyperclip.copy(row)
    pyautogui.hotkey("ctrl", "v")
    pyautogui.press("enter")
    time.sleep(0.5)

6.3 用函數(shù)封裝重復(fù)動作

import pyautogui
import pyperclip
import time

def paste_line(text: str) -> None:
    pyperclip.copy(text)
    pyautogui.hotkey("ctrl", "v")
    pyautogui.press("enter")
    time.sleep(0.3)

items = ["任務(wù) A", "任務(wù) B", "任務(wù) C"]

time.sleep(3)
for item in items:
    paste_line(item)

封裝函數(shù)后,腳本會更清晰,也方便以后擴(kuò)展。

7. 風(fēng)險與安全說明

pyautogui 的本質(zhì)是模擬真實用戶操作,因此它的風(fēng)險也和人工誤操作類似,但速度更快、影響可能更大。

使用前建議遵守以下原則:

  • 先在測試窗口、測試賬號、測試數(shù)據(jù)中運(yùn)行。
  • 不要一上來操作生產(chǎn)系統(tǒng)、財務(wù)系統(tǒng)、真實訂單或真實客戶數(shù)據(jù)。
  • 保持 pyautogui.FAILSAFE = True,必要時把鼠標(biāo)移到屏幕左上角中止腳本。
  • 給關(guān)鍵步驟增加 time.sleep(),不要讓腳本過快執(zhí)行。
  • 對高風(fēng)險操作增加人工確認(rèn),例如刪除、提交、付款、批量修改。
  • 使用截圖留痕,便于排查問題。
  • 不要把賬號密碼硬編碼在腳本中。
  • 自動化腳本運(yùn)行時不要隨意移動鼠標(biāo)或切換窗口。
  • 如果界面位置會變化,盡量不要只依賴固定坐標(biāo),可以結(jié)合窗口標(biāo)題、圖像識別或更穩(wěn)定的應(yīng)用 API。

一個實用建議是:先讓腳本只打印計劃執(zhí)行的動作,不真正點(diǎn)擊;確認(rèn)流程無誤后,再打開點(diǎn)擊邏輯。

8. 完整實戰(zhàn)代碼:自動打開記事本、輸入內(nèi)容、保存截圖、重復(fù)追加日志

下面是一份完整示例代碼,綜合使用了:

  • pyautogui 鼠標(biāo)與鍵盤操作
  • pyperclip 粘貼中文
  • subprocess 打開記事本
  • screenshot() 截圖
  • 循環(huán)執(zhí)行重復(fù)操作
  • 安全暫停與故障保護(hù)

保存為 pyautogui_notepad_office_demo.py 后運(yùn)行。

import subprocess
import time
from datetime import datetime
from pathlib import Path

import pyautogui
import pyperclip


pyautogui.PAUSE = 0.25
pyautogui.FAILSAFE = True


def wait(seconds: float, message: str = "") -> None:
    """等待一段時間,并在控制臺輸出提示。"""
    if message:
        print(message)
    time.sleep(seconds)


def paste_text(text: str) -> None:
    """通過剪貼板粘貼文本,適合中文和長文本。"""
    pyperclip.copy(text)
    pyautogui.hotkey("ctrl", "v")


def open_notepad() -> None:
    """打開 Windows 記事本。"""
    subprocess.Popen("notepad.exe")
    wait(1.5, "正在打開記事本...")


def write_report_header() -> None:
    """寫入報告頭部內(nèi)容。"""
    content = f"""Windows 自動化辦公腳本運(yùn)行記錄
生成時間:{datetime.now().strftime("%Y-%m-%d %H:%M:%S")}

本文件由 Python + PyAutoGUI 自動生成。
腳本演示內(nèi)容:
1. 自動打開記事本
2. 自動輸入中文內(nèi)容
3. 自動執(zhí)行重復(fù)輸入
4. 自動保存屏幕截圖

運(yùn)行日志:
"""
    paste_text(content)


def append_log_lines(count: int = 5) -> None:
    """重復(fù)追加多行日志。"""
    for index in range(1, count + 1):
        line = f"{index}. 自動化辦公任務(wù)第 {index} 步已完成。"
        paste_text(line)
        pyautogui.press("enter")
        wait(0.4)


def save_screenshot(output_dir: Path) -> Path:
    """保存當(dāng)前屏幕截圖。"""
    output_dir.mkdir(parents=True, exist_ok=True)
    filename = datetime.now().strftime("pyautogui_notepad_%Y%m%d_%H%M%S.png")
    screenshot_path = output_dir / filename
    img = pyautogui.screenshot()
    img.save(screenshot_path)
    return screenshot_path


def main() -> None:
    print("腳本將在 3 秒后開始運(yùn)行。")
    print("如果需要緊急停止,請把鼠標(biāo)移動到屏幕左上角。")
    wait(3)

    open_notepad()
    write_report_header()
    append_log_lines(count=5)

    screenshot_path = save_screenshot(Path("screenshots"))
    print(f"截圖已保存:{screenshot_path.resolve()}")
    print("自動化演示完成。")


if __name__ == "__main__":
    main()

運(yùn)行前安裝依賴:

pip install pyautogui pyperclip pillow

運(yùn)行:

python pyautogui_notepad_office_demo.py

運(yùn)行效果:

  1. 控制臺提示 3 秒后開始。
  2. 自動打開 Windows 記事本。
  3. 自動粘貼中文運(yùn)行記錄。
  4. 自動重復(fù)追加 5 行日志。
  5. 自動保存屏幕截圖到 screenshots 目錄。

9. 進(jìn)階方向

掌握基礎(chǔ)操作后,可以繼續(xù)學(xué)習(xí)以下方向:

  • 使用 locateOnScreen() 根據(jù)圖片定位按鈕。
  • 結(jié)合 Excel 文件批量讀取待錄入數(shù)據(jù)。
  • 結(jié)合 schedule 做定時自動化任務(wù)。
  • 結(jié)合日志模塊記錄每一步操作結(jié)果。
  • 結(jié)合異常處理,失敗時自動截圖。
  • 對網(wǎng)頁系統(tǒng)優(yōu)先考慮 Playwright、Selenium 等瀏覽器自動化工具。
  • 對 Excel、Word、PDF 等文件優(yōu)先考慮專用庫,例如 openpyxl、python-docx、pypdf。

pyautogui 的優(yōu)勢是簡單、直觀、可以控制幾乎所有桌面軟件;缺點(diǎn)是依賴屏幕狀態(tài)和窗口位置,穩(wěn)定性不如直接調(diào)用 API。因此在實際辦公自動化中,可以把它作為“最后一公里”的桌面操作工具,與文件處理庫、瀏覽器自動化庫、數(shù)據(jù)庫腳本組合使用。

總結(jié)

本文演示了 Python + pyautogui 在 Windows 自動化辦公中的基礎(chǔ)用法,包括庫介紹、鼠標(biāo)移動與點(diǎn)擊、鍵盤輸入、屏幕截圖、自動打開記事本輸入文字、自動化重復(fù)操作,以及風(fēng)險與安全說明。

對于初學(xué)者來說,建議從低風(fēng)險場景開始練習(xí),例如自動打開記事本、自動輸入文本、自動截圖。等熟悉坐標(biāo)、快捷鍵、等待時間和異常處理后,再逐步應(yīng)用到真實辦公流程中。

自動化辦公的核心不是“讓腳本點(diǎn)得更快”,而是把重復(fù)、固定、可驗證的流程交給程序完成,讓人把精力放在判斷、溝通和決策上。

以上就是基于Python+PyAutoGUI實現(xiàn)的Windows自動化辦公腳本的詳細(xì)內(nèi)容,更多關(guān)于Python Windows自動化辦公的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python多線程編程(五):死鎖的形成

    Python多線程編程(五):死鎖的形成

    這篇文章主要介紹了Python多線程編程(五):死鎖的形成,本文講解了死鎖的概念、死鎖示例、避免死鎖的方法等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • python安裝和pycharm環(huán)境搭建設(shè)置方法

    python安裝和pycharm環(huán)境搭建設(shè)置方法

    這篇文章主要介紹了python安裝和pycharm環(huán)境搭建和設(shè)置方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下 ,
    2020-05-05
  • python中SchedulerManager使用踩坑

    python中SchedulerManager使用踩坑

    本文主要介紹了python中SchedulerManager使用踩坑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05
  • python實現(xiàn)微信接口(itchat)詳細(xì)介紹

    python實現(xiàn)微信接口(itchat)詳細(xì)介紹

    這篇文章主要介紹了python實現(xiàn)微信接口(itchat)詳細(xì)介紹,小編覺得挺不錯的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • Python Matplotlib繪圖基礎(chǔ)知識代碼解析

    Python Matplotlib繪圖基礎(chǔ)知識代碼解析

    這篇文章主要介紹了Python Matplotlib繪圖基礎(chǔ)知識代碼解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • 將Emacs打造成強(qiáng)大的Python代碼編輯工具

    將Emacs打造成強(qiáng)大的Python代碼編輯工具

    這篇文章主要介紹了將Emacs打造成強(qiáng)大的Python代碼編輯工具的方法,人們常說Vim是編輯器之神而Emacs是神的編輯器:)需要的朋友可以參考下
    2015-11-11
  • Python 多線程并行執(zhí)行的實現(xiàn)示例

    Python 多線程并行執(zhí)行的實現(xiàn)示例

    本文主要介紹了Python 多線程并行執(zhí)行的實現(xiàn)示例,通過使用threading和concurrent.futures模塊可以進(jìn)行實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • Python ttk模塊簡介與使用示例

    Python ttk模塊簡介與使用示例

    ttk是Python標(biāo)準(zhǔn)庫中tkinter的擴(kuò)展模塊,提供主題化、現(xiàn)代化GUI組件,支持主題切換、跨平臺一致、樣式定制,包含按鈕、標(biāo)簽、輸入框、組合框、進(jìn)度條、筆記本、樹視圖等常用組件,適合構(gòu)建統(tǒng)一且靈活的界面,本文給大家介紹Python ttk模塊簡介與使用,感興趣的朋友一起看看吧
    2025-08-08
  • python將寫好的程序打包成exe可執(zhí)行文件

    python將寫好的程序打包成exe可執(zhí)行文件

    這篇文章主要介紹了python寫好的程序打包成exe可執(zhí)行文件,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 將Python腳本打包成exe文件

    將Python腳本打包成exe文件

    大家好,本篇文章主要講的是將Python腳本打包成exe文件,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02

最新評論

哈巴河县| 巴彦淖尔市| 达州市| 吐鲁番市| 淮南市| 梧州市| 文成县| 枣强县| 永平县| 仁寿县| 赤峰市| 莆田市| 阜平县| 图们市| 高雄市| 怀安县| 铜鼓县| 吴江市| 盈江县| 台江县| 阳高县| 霸州市| 吉木萨尔县| 墨玉县| 米脂县| 黔南| 新营市| 城固县| 昌吉市| 甘孜县| 眉山市| 涞水县| 延吉市| 高雄县| 庆云县| 平顺县| 康乐县| 南昌县| 合水县| 唐山市| 象山县|