受疫情影響,現在還在家上網課,由於英語網課的作業經常會要輸入一大段英文字母,由於網站的設置,不能直接粘貼答案,自己寫好中文去有道翻譯了還得一個個輸入,所以嘗試了一下利用Python來讀取一個txt或其他格式的文本,然后鍵盤自動輸入該文本中的數據到目標網站上,原來的想法是可能需要先將要輸入的文本復制粘貼到txt文件中,然后利用python讀取文件,再利用庫函數進行輸入,后面發現利用pyautogui可以一行代碼就實現我需要的功能。
下面介紹一下用到的工具:
pyautogui
和之前實現鼠標每隔段時間自動點擊某目標區域的函數類似,用到了pyautogui庫,如其名,功能就是利用pyhton實現GUI自動控制鼠標和鍵盤,不得不說這個庫對於操作鼠標和鍵盤真的不要太方便。
1.安裝: pip install pyautogui
2.typewrite()函數介紹
該函數可以實現鍵盤自動輸入目標字符串,有兩個參數,第一個是要輸入的字符串,第二個是每次輸入的間隔時間,一般設置為0.25s。
pyautogui.typewrite('Hello World', 0.25)
也可以這樣輸入來實現更多功能:
pyautogui.typewrite(['a', 'b', 'backspace'], '0.25') # 輸入a,b后再按一下回車
這里我只需要直接輸入一長段英文即可,所以直接利用第一種方式輸入就行,一般輸入的字數都是幾百,這么長的字符串不分行的話肯定會有警告,我自己用的是pycharm測試的,雖然警告但是還是會正常輸入完成。
最終的代碼實現如下:
import pyautogui import time time.sleep(5) # 延遲5秒 pyautogui.typewrite('A literary search is an imp...', '0.25')
這里延遲5s是為了空出時間來將光標提前放在要輸入的位置。
還可以利用該庫的其他功能添加一個輸入完成的提示功能,代碼如下:
pyautogui.alert('輸入完成!')
加入此行代碼后,輸入完成時,會彈出這樣一個提示框,單擊OK結束。
代碼很簡單,大家笑一笑就好
因為暫時只需要用到輸入英文,要輸入中文的話稍微麻煩一點,后續有需求了再研究研究
需要pyautogui的更多功能可以查看:
https://muxuezi.github.io/posts/doc-pyautogui.html