我是做諮詢工作的,了解到Python 系統可以方便日常工作,但關注了一些課程後都是樣開發方向學習的,並不適合我,課程也非常費腦筋,作為並不想從事軟體開發行業的我(女)來說,有哪些課程是從處理和方便日常工作的角度可以學習的?都在哪些平台學習?求大神賜教!


比如模擬滑鼠點擊和鍵盤點擊?幫你自動化完成信息錄入?

本文推薦第三方庫PyAutoGui。

PyAutoGUI

你想徹底釋放雙手,讓電腦幫你完成滑鼠操作和鍵盤操作?

讓電腦幫你完成GUI的自動任務?

那本文就是為你量身打造的,實現辦公自動化的Python程序庫。

本文中所有代碼全部經過驗證,使用的開發環境是Python 3.8。

PyAutoGUI是一個跨平台GUI自動化Python模塊。用於以編程方式控制滑鼠和鍵盤。

本文按照如下順序進行組織:

  1. 安裝
  2. 滑鼠控制功能
  3. 鍵盤功能功能

1.安裝

在Windows平台上, 在cmd命令窗口中輸入:

&>&>&>pip install pyautogui

pyautogui會自動安裝它依賴的模塊,包括PyTweening,PyScreeze,PyGetWindow,PymsgBox和MouseInfo。

安裝完畢後,調用如下語句,不會報錯。

&>&>&> import pyautogui

2. 滑鼠控制功能

這一小節按照如下的順序進行展開。

  • 屏幕和滑鼠位置
  • 滑鼠移動
  • 滑鼠拖拽
  • 滑鼠點擊

2.1 屏幕和滑鼠位置

在介紹滑鼠控制功能前,首先介紹屏幕和滑鼠位置,因為滑鼠的控制功能都是基於屏幕像素點進行的。

我們的屏幕是由很多像素點組成的。以我的顯示器為例進行說明。我的顯示解析度是1920×1080,左上角就是(0,0),右下角就是(1919,1079),x軸坐標按照從左往右的順序遞增,y軸坐標按照從上往下的順序遞增。

0,0 X 增加 --&>
+---------------------------+
| | Y 增加
| | |
| 1920 x 1080 screen | |
| | V
| |
| |
+---------------------------+ 1919, 1079

屏幕解析度大小由size()函數作為兩個整數的元組返回,當前滑鼠位置可以通過position()函數返回。

&>&>&> pyautogui.size()
Size(width_=1920, height=1080)
&>&>&> pyautogui.position()
Point(x=897, y=309)

要檢查X,Y坐標是否在屏幕上,可以調用onScreen()函數。

&>&>&> pyautogui.onScreen(0,0)
True
&>&>&> pyautogui.onScreen(1920,1080)
False
&>&>&> pyautogui.onScreen(1919,1079)
True

2.2 滑鼠移動

滑鼠移動的方法包括兩種:絕對坐標和相對坐標。

使用moveTo()函數,會將滑鼠游標移至你傳遞的X和Y整數坐標,即移動到絕對坐標位置

# 將滑鼠游標移動到(200,300)
&>&>&> pyautogui.moveTo(200,300)
# 將滑鼠游標移動到(400,500)
&>&>&> pyautogui.moveTo(400,500)

使用move()函數,會將滑鼠游標移動到相對於當前位置的像素點上,即移動到相對坐標位置。

# 將滑鼠游標左移100個像素點
&>&>&> pyautogui.move(-100,0)
# 將滑鼠游標右移100個像素點
&>&>&> pyautogui.move(100,0)
# 將滑鼠游標上移200個像素點
&>&>&> pyautogui.move(0,-200)
# 將滑鼠游標下移200個像素點
&>&>&> pyautogui.move(0,200)

除了可以設置滑鼠游標位置,還可以設置持續時間和緩動功能,這兩個參數使滑鼠移動更有趣。這兩個參數可以控制滑鼠移動到目的地的時間和速度。正常情況下,滑鼠是以恆定的速度向目的地移動。第3個參數是控制持續時間(單位秒),第4個參數是控制移動節奏,在持續時間不變的情況下,不同位置的移動速度不一樣。

pyautogui.easeInQuad #開始慢,結束快
pyautogui.easeOutQuad #開始塊,結束慢
pyautogui.easeInOutQuad #開始塊,結束塊,中間慢
pyautogui.easeInBounce #結束時反彈
pyautogui.easeInElastic #結束時是橡皮筋

參考下面的例子。

# 將當前滑鼠游標移動到位置(400,500),持續時間是2秒,移動開始慢,結束時快
&>&>&> pyautogui.moveTo(400,500,2,pyautogui.easeInOutQuad)
# 將當前滑鼠游標向右移動400個像素點,持續時間是2秒,移動開始塊,結束時慢
&>&>&> pyautogui.move(400,0,2,pyautogui.easeOutQuad)

2.3 滑鼠拖拽

滑鼠拖拽的方式包括兩種:絕對坐標和相對坐標。

使用dragTo()函數和drag()函數可以實現滑鼠拖拽功能。dragTo()函數使用絕對坐標,將當前滑鼠游標選中的東西移動到指定的游標位置;drag()函數使用相對坐標,將當前滑鼠游標選中的東西移動到相對於當前位置的像素點上,即移動到相對坐標位置。

除了之外,它們還有一個參數button,這個參數可以被設置成『left』,『middle』,『right』,表示在拖拽的過程中按下哪個滑鼠鍵。

# 將當前游標位置的東西移動到(100,200)處,在拖動的過程中按住滑鼠左鍵。
&>&>&> pyautogui.dragTo(100,200,button=left)
# 將當前游標位置的東西向下移動100個像素點,在拖動的過程中按住滑鼠左鍵。
&>&>&> pyautogui.drag(100,0,button=left)

滑鼠拖拽具有和滑鼠移動一樣的參數。第3個參數和第4個參數的作用和滑鼠移動的參數效果一樣。參考下面的例子。

# 將當前游標位置的東西向右移動400個像素點,持續時間2秒,開始快,結束慢。
&>&>&> pyautogui.drag(400,0,2,pyautogui.easeOutQuad)

2.4 滑鼠點擊

通過調用click()函數可以模擬滑鼠在當前位置單擊滑鼠左鍵,」點擊「的定義是按下按鈕後將其釋放。

&>&>&> pyautogui.click()

除了在當前位置點擊,還可以點擊指定的坐標位置。在click()函數中傳入X坐標和Y坐標。

&>&>&> pyautogui.click(100,300)

滑鼠點擊默認使用滑鼠左鍵,也可以通過傳遞參數,指定使用那個滑鼠鍵。參數包括left,『middle』, 『right』。

# 用滑鼠左鍵,點擊(100,300)的位置
&>&>&> pyautogui.click(100,300,button=right)
# 用滑鼠右鍵,點擊當前位置
&>&>&> pyautogui.click(button=middle)

click默認點擊一次,如果要實現多次點擊,可以將整數傳遞給clicks參數,還可以將整數或浮點數設置給interval參數,以指定兩次點擊之間的暫停時間(以秒為單位)。

# 用滑鼠左鍵點擊2次,間隔時間0.25秒
&>&>&> pyautogui.click(clicks=2,interval=0.25)

3 鍵盤控制功能

鍵盤控制功能包括輸入字元串、按下鍵盤上的鍵、熱鍵。

3.1 輸入字元串

輸入字元串使用的是write()函數。

&>&>&> pyautogui.write("Hello World!")

3.2 模擬按鍵

模擬按鍵使用的press()函數、keyDown()、keyUp()函數。

調用press()函數,從它傳遞一個字元串pyautogui.KEYBOARD_KEYS,例如enter、f1、esc等等。

&>&>&> pyautogui.press(f11)

下表是KEYBOARD_KEYS,這些參數可以傳遞給press()函數,和接下來要介紹的keyDown(),keyUp()和hotKey()函數。

[ ,
,
, , !, ", #, $, %, , "", (,
), *, +, ,, -, ., /, 0, 1, 2, 3, 4, 5, 6, 7,
8, 9, :, ;, &, ?, @, [, \, ], ^, _, `,
a, b, c, d, e,f, g, h, i, j, k, l, m, n, o,
p, q, r, s, t, u, v, w, x, y, z, {, |, }, ~,
accept, add, alt, altleft, altright, apps, backspace,
browserback, browserfavorites, browserforward, browserhome,
browserrefresh, browsersearch, browserstop, capslock, clear,
convert, ctrl, ctrlleft, ctrlright, decimal, del, delete,
divide, down, end, enter, esc, escape, execute, f1, f10,
f11, f12, f13, f14, f15, f16, f17, f18, f19, f2, f20,
f21, f22, f23, f24, f3, f4, f5, f6, f7, f8, f9,
final, fn, hanguel, hangul, hanja, help, home, insert, junja,
kana, kanji, launchapp1, launchapp2, launchmail,
launchmediaselect, left, modechange, multiply, nexttrack,
nonconvert, num0, num1, num2, num3, num4, num5, num6,
num7, num8, num9, numlock, pagedown, pageup, pause, pgdn,
pgup, playpause, prevtrack, print, printscreen, prntscrn,
prtsc, prtscr, return, right, scrolllock, select, separator,
shift, shiftleft, shiftright, sleep, space, stop, subtract, tab,
up, volumedown, volumemute, volumeup, win, winleft, winright, yen,
command, option, optionleft, optionright]

press()函數實際上是模擬按下一個鍵,然後釋放它,其實就是keyDown()和keyUp()函數的包裝。這些函數可以自己調用。

import pyautogui

pyautogui.keyDown(ctrl)
pyautogui.keyDown(shift)
pyautogui.keyUp(shift)
pyautogui.keyUp(ctrl)

調用結果就是,輸入法切換成功。

3.3 熱鍵

為了方便快捷地按下熱鍵或鍵盤快捷鍵,hotkey()可以傳遞幾個鍵字元串,這些字元串將按順序按下,然後以相反的順序釋放。

3.2節中的切換輸入法,可以輸入如下代碼:

pyautogui.hotkey(ctrl, shift)

碼字不易,如果真的解決了您的問題。

請您點贊支持。

您可以關注我,我會持續回答計算機相關問題。

我有2個Python專欄。1個專門針對Python初學者,手把手教你入門Python;1個專門介紹強大的第三方庫。


樓上兄弟推薦的書叫《Python編程快速上手:讓繁瑣工作自動化》,作者Al Sweigart。

題主可以用這本書作為教材進行學習。書裡面從python語法基礎開始講起,這些內容佔了6章,為後面幾章實戰打下基礎。

重點介紹一下後面的「第二部分 自動化任務」。

7-10章 ,是關於文件,尤其是文本文件處理的功能。可以做點「從文本精確搜索指定文字」,「自動複製/移動/刪除文件」之類工作。

對於辦公室文員來講,用電腦工作80%都是關於Office的操作,excel操作,pdf和word操作對於辦公室文員非常有用,可以提升不少工作效率(遺憾的是這本書沒有PPT的操作)。「第12章 處理Excel電子表格」,「第13章 處理PDF和Word文檔」不能錯過。

「第16章 發送電子郵件和簡訊」郵件操作的知識可以用來處理郵件。(PS:簡訊就不用看了)

「第11章 從Web抓取信」網站數據抓取內容,有沒有上網查數據的需要了。本人比較常見的是採集網站中的圖片,也會試過匯總信息的操作(就是那種關鍵信息不一次全給,而是分成N頁逐個長篇大論介紹讓人慢慢看的。如果手工要不斷翻頁去找數據會累死人)。

「第17章 操作圖像」,圖片處理的功能。本人只用來做過壓縮圖片大小的功能,應該可以做自動添加水印?

最後一章「GUI自動化控制鍵盤和滑鼠」,講的是怎麼用Python控制你的滑鼠鍵盤操作,相當於按鍵精靈高級功能。這一章學習難度不少,但是學會了。你就可以用python進行很多很多電腦操作了。


方便日常工作這個描述說實在還是比較寬泛的,因為日常工作有挺多的。

不過無論是做日常什麼工作,學Python的話一些基礎知識肯定還是需要的,對於基礎知識而言,樓上說的那本書,全稱《Python編程快速上手-讓繁瑣工作自動化》的前六章都是講基礎知識的。

不過我個人認為《自動化》這本書的內容對於初學者來說有些太「全」了,因此我比較推薦入門知識看一下這兩個網站:

菜鳥教程:Python 基礎教程 | 菜鳥教程

廖雪峰:Python教程

我個人理解如果只想讓辦公更簡單或者只是做一些數據處理工作等,是沒有必要報班的

說完基礎知識,剩下的就是業務相關的領域了。據我了解做諮詢對於數據處理和一些報表、郵件、文檔的處理比較多,那麼我比較推薦了解一下幾個庫:

Pandas、Numpy、os、json、Matplotlib、Scipy、openpyxl

基本上都是耳熟能詳的常見庫了,一般數據處理和分析用的最多的就是Pandas

對於這些領域來說,我推薦《利用Python進行數據分析》這本書,寫的很好,實用性也很強

如果還有別的一些辦公需求,那麼上文的《自動化》可以做參考書用,用到那個模塊就去看一下相關的內容就好了

另外推薦github上的一個項目:https://github.com/jackzhenguo/python-small-examples

這個項目彙集了眾多一行(或幾行)代碼能實現的python功能,開箱即用,十分方便。

大概就是這樣的一行代碼案例

我記得有本書叫python:自動化辦公,封皮是一個機器人推著車子的。

學python還是看你做什麼,數據分析還是作為腳本語言(你這個應該是做腳本用的吧)


當然有啦 比如替代很多excel工作 而且很快 不會死機 可以做更多形式的圖幫助說明問題 可以定時抓數據 等等


風變編程


想方便日常工作的話,最好從應用角度出發,有目的性的學一下。

比如一些Excel的操作(合併、統計、計算等)比較費時費力,那就圍繞「如何用Python操作Excel」展開Python學習,不明白的語法就查一下。

我覺得這樣比從一開始就對著Python全部內容看效率要高。

其實初學者不大建議上來就全面學習,中間很容易因為枯燥放棄。可以找個懂一些的朋友稍微指點下。

有啥問題也能私信我。


厚著臉皮自薦,理由是:有答疑、答疑及時且給力、價格低、性價比高

Python自動化辦公+數據可視化 - 網易雲課堂?

study.163.com


B站上有很多免費的視頻,講的都還不錯


風變課程的基礎課,不要買爬蟲,基礎課認真做完就能獨立做項目了。我之前沒學過python,後來用python做了小項目。


推薦閱讀:
相关文章