Python 已成為自動化領域的熱門語言,其簡潔易學的語法和豐富的函式庫,讓開發者能輕鬆處理繁瑣的任務。從檔案管理、資料擷取到系統管理,Python 提供了完整的解決方案,大幅提升工作效率。本文將介紹 Python 自動化技術的核心概念,包含檔案操作、網頁爬蟲、資料函式庫互動以及命令列工具的開發,並輔以實務案例,讓讀者快速上手 Python 自動化。

import datetime

now = datetime.datetime.now()
print(now)

資料結構與自動化

字典與資料結構

在 Python 中,字典(dictionary)是一種強大的資料結構,允許您以鍵值對的形式儲存和管理資料。字典的鍵可以是字串、整數或其他不可變的型別,而值可以是任何型別,包括列表、字典等。您可以使用字典來儲存和查詢資料,例如使用名稱作為鍵來查詢電話號碼。

字串與文字編輯

Python 的字串(string)型別允許您儲存和操作文字資料。您可以使用各種方法來操作字串,例如將字串連線在一起、分割字串、替換字串中的字元等。另外,Python 還提供了各種模組和函式來協助您進行文字編輯,例如 re 模組中的正規表示式功能。

自動化任務

Python 可以幫助您自動化各種任務,例如:

  • 文字模式匹配:使用正規表示式來查詢和替換文字中的模式。
  • 檔案操作:使用 Python 的檔案操作函式來讀取、寫入和管理檔案。
  • 檔案組織:使用 Python 的檔案操作函式來複製、移動、重新命名和刪除檔案。
  • 命令列程式:使用 Python 的 argparse 模組來建立命令列程式。
  • 網頁爬蟲:使用 Python 的 requestsBeautifulSoup 模組來下載和解析網頁。
  • Excel 試算表:使用 Python 的 openpyxl 模組來讀取和寫入 Excel 試算表。
  • Google Sheets:使用 Python 的 gspread 模組來讀取和更新 Google Sheets。
  • SQLite 資料函式庫:使用 Python 的 sqlite3 模組來建立和管理 SQLite 資料函式庫。

資料函式庫與儲存

Python 提供了各種模組和函式來協助您管理和儲存資料,例如:

  • SQLite:是一種輕量級的關聯式資料函式庫,內建於 Python 中。
  • 檔案:可以使用 Python 的檔案操作函式來讀取和寫入檔案。
  • Excel 試算表:可以使用 Python 的 openpyxl 模組來讀取和寫入 Excel 試算表。
  • Google Sheets:可以使用 Python 的 gspread 模組來讀取和更新 Google Sheets。

網頁爬蟲與資料擷取

Python 提供了各種模組和函式來協助您下載和解析網頁,例如:

  • requests:是一種用於下載網頁的模組。
  • BeautifulSoup:是一種用於解析網頁的模組。

命令列程式與佈署

Python 提供了各種模組和函式來協助您建立和佈署命令列程式,例如:

  • argparse:是一種用於建立命令列程式的模組。

檔案處理和自動化

檔案格式和程式設計

在現代電腦應用中,檔案處理和自動化是一個非常重要的領域。Python作為一種強大的程式語言,提供了多種工具和函式庫來處理不同的檔案格式,包括PDF、Word檔案、CSV、JSON、XML等。

PDF和Word檔案

使用Python可以輕鬆地讀取和編輯PDF和Word檔案。例如,使用PyPDF2函式庫可以讀取和合併PDF檔案,而使用python-docx函式庫可以建立和編輯Word檔案。

CSV、JSON和XML檔案

CSV、JSON和XML是常用的資料序列化格式。Python提供了多種函式庫來處理這些格式,包括csvjsonxml.etree.ElementTree。使用這些函式庫,可以輕鬆地讀取和寫入這些格式的檔案。

時間和任務排程

Python還提供了多種工具來處理時間和任務排程。例如,使用datetime函式庫可以輕鬆地處理日期和時間,而使用schedule函式庫可以建立和管理任務排程。

郵件和簡訊通知

使用Python可以輕鬆地傳送郵件和簡訊通知。例如,使用smtplib函式庫可以傳送郵件,而使用twilio函式庫可以傳送簡訊。

影像和圖表處理

Python提供了多種函式庫來處理影像和圖表,包括PillowMatplotlib。使用這些函式庫,可以輕鬆地建立和編輯影像和圖表。

文字識別

使用Python可以輕鬆地識別影像中的文字。例如,使用PyTesseract函式庫可以識別影像中的文字。

鍵盤和滑鼠控制

使用Python可以輕鬆地控制鍵盤和滑鼠。例如,使用pyautogui函式庫可以控制鍵盤和滑鼠。

語音合成和語音識別

使用Python可以輕鬆地實作語音合成和語音識別。例如,使用gTTS函式庫可以實作語音合成,而使用SpeechRecognition函式庫可以實作語音識別。

下載和安裝Python

Python是一種免費的程式語言,可以在Windows、macOS和Ubuntu Linux上下載和安裝。下載地址為https://www.python.org/downloads/

@startuml
:開始; --> :下載Python;
:B; --> :安裝Python;
:C; --> :開始程式設計;
@enduml

內容解密:

上述流程圖展示了下載和安裝Python的過程。首先,需要下載Python的安裝包,然後安裝Python。在安裝完成後,可以開始程式設計。

import datetime

# 取得當前時間
now = datetime.datetime.now()
print(now)

圖表翻譯:

上述程式碼展示瞭如何使用Python取得當前時間。首先,需要匯入datetime函式庫,然後使用datetime.datetime.now()函式取得當前時間。最後,列印預出當前時間。

安裝Python和Mu編輯器

在開始學習Python之前,您需要在電腦上安裝Python和Mu編輯器。以下是安裝步驟:

下載和安裝Python

  1. 前往Python官方網站,下載適合您作業系統的Python安裝包。
  2. 選擇正確的安裝包(Windows、macOS或Linux)。
  3. 執行安裝包並按照提示完成安裝。

下載和安裝Mu編輯器

  1. 前往Mu編輯器官方網站,下載適合您作業系統的Mu編輯器安裝包。
  2. 選擇正確的安裝包(Windows、macOS或Linux)。
  3. 執行安裝包並按照提示完成安裝。

啟動Mu編輯器

  1. 在Windows上,按下開始按鈕,輸入「Mu編輯器」,然後選擇它。
  2. 在macOS上,開啟Finder視窗,點選應用程式,然後點選「Mu編輯器」。
  3. 在Ubuntu上,選擇應用程式 > 附加元件 > 終端機,然後輸入「python3 -m mu」。

啟動IDLE

IDLE是Python的內建編輯器和互動式shell。您可以使用IDLE作為第二個編輯器,如果您無法安裝或執行Mu編輯器。

  1. 在Windows上,按下開始按鈕,輸入「IDLE」,然後選擇它。
  2. 在macOS上,開啟Finder視窗,點選應用程式,點選「Python 3.x」,然後點選IDLE圖示。
  3. 在Ubuntu上,選擇應用程式 > 附加元件 > 終端機,然後輸入「idle」。

互動式shell

當您執行Mu編輯器或IDLE時,會出現一個互動式shell視窗。您可以在此視窗中輸入Python指令,並立即看到結果。

在Mu編輯器中,互動式shell是視窗下半部分的一個面板。您可以在此面板中輸入Python指令,並看到結果。

在IDLE中,互動式shell是第一個出現的視窗。您可以在此視窗中輸入Python指令,並看到結果。

使用互動式shell

  1. 啟動Mu編輯器或IDLE。
  2. 在互動式shell視窗中輸入Python指令,例如「print(‘Hello, world!’)」。
  3. 按下Enter鍵執行指令。
  4. 看到結果。

內容解密:

以上步驟介紹瞭如何安裝Python和Mu編輯器,以及如何啟動互動式shell。互動式shell是學習Python的重要工具,因為它允許您立即看到指令的結果。

圖表翻譯:

以下是Mu編輯器和IDLE的架構圖:

@startuml
:Mu編輯器; --> :互動式shell;
:IDLE; --> :互動式shell;
:B; --> :Python指令;
:D; --> :E;
@enduml

這個圖表顯示了Mu編輯器和IDLE如何與互動式shell相連,並如何執行Python指令。

程式設計入門:尋找幫助和解決問題

程式設計師通常透過實際操作和線上資源來學習,這與傳統的面對面教學方式不同。使用網際網路作為學習平臺的優點是,有許多線上社群可以提供幫助,解決您遇到的問題。您的問題可能已經被他人解決過了,答案就在網路上等待您發現。

故意引發錯誤並尋找解決方案

讓我們故意引發一個錯誤:在互動式 shell 中輸入 '42' + 3。您現在不需要了解這個指令的意思,但結果應該如下所示:

>>> '42' + 3
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    '42' + 3
TypeError: can only concatenate str (not "int") to str

錯誤訊息出現,因為 Python 無法理解您的指令。錯誤訊息的 Traceback 部分顯示了具體的指令和行號,Python 在那裡遇到了問題。如果您不確定如何解釋特定的錯誤訊息,可以在網路上搜尋它。將錯誤訊息複製並貼上到您的搜尋引擎中,您應該會看到許多連結,解釋錯誤訊息的意思和原因。

智慧地提問

如果您無法透過搜尋找到答案,試著向網路上的專家提問。但是,請記住,有一些方法可以智慧地提問,以便他人更容易地幫助您。以下是一些提示:

  • 解釋您想要做什麼,而不是隻描述您做了什麼。
  • 指定錯誤發生的位置。
  • 複製並貼上整個錯誤訊息和您的程式碼到像 Pastebin 這樣的網站,以便與他人分享。
  • 解釋您已經嘗試過什麼來解決問題。
  • 列出您使用的 Python 版本、作業系統和版本。
  • 如果錯誤是在您修改程式碼後出現的,請解釋您做了什麼修改。
  • 說明是否每次執行程式都會出現錯誤,或者只在特定動作後出現。

線上禮儀

在提問時,請遵守良好的線上禮儀。例如,不要全部使用大寫字母,或對試圖幫助您的人提出不合理的要求。

新版更新

本文的最新版包含了 16 個新的程式設計專案,讓您可以練習所學的技能。您將找到關於 SQLite 和 Python 的 sqlite3 模組的完整介紹,還有如何編譯 Python 指令碼為可執行檔、建立命令列程式等內容。此外,您還會學習如何使用 PyPDF 和 PdfMiner 進行 PDF 操作,使用 Playwright 控制網頁瀏覽器,讓您的程式可以說話,使用 OpenAI 的 Whisper 函式庫從音訊和影片檔案建立文字轉錄,從圖片中提取文字等。

內容解密:

以上程式碼片段展示瞭如何在 Python 中故意引發一個錯誤,並如何尋找解決方案。錯誤訊息提供了有關錯誤位置和型別的重要資訊。透過搜尋和提問,您可以找到解決方案並繼續您的程式設計旅程。

圖表翻譯:

@startuml
:遇到問題; --> :搜尋答案;
:B; --> :提問;
:C; --> :遵守線上禮儀;
:D; --> :找到解決方案;
@enduml

此圖表展示了當您遇到問題時,可以透過搜尋答案、提問和遵守線上禮儀來找到解決方案的流程。

Python 基礎入門

Python 是一種具有豐富語法結構、標準函式庫和互動式開發環境的程式語言。幸好,你不需要全部學習,只需掌握足夠的知識來撰寫一些實用的程式即可。

要達到這個目標,你需要先掌握一些基本的程式設計概念。就像一個正在學習魔法的學徒,你可能會覺得這些概念很枯燥,但只要經過一些練習,你就能像揮舞魔杖一樣輕鬆地控制電腦,完成令人難以置信的任務。

本章包含一些範例,鼓勵你在互動式 shell 中輸入程式碼,互動式 shell 也被稱為 read-evaluate-print-loop (REPL),它允許你一行一行地執行 Python 指令,並立即顯示結果。使用互動式 shell 是學習基本 Python 指令的最佳方式,因此請在閱讀的同時嘗試輸入程式碼。

在互動式 Shell 中輸入表示式

你可以透過以下步驟啟動互動式 shell:在 Windows 中,開啟開始選單,輸入 Mu,然後開啟 Mu 應用程式。在 macOS 中,開啟應用程式資料夾,然後雙擊 Mu。點選新建按鈕,儲存一個空白檔案為 blank.py。當你執行這個空白檔案時,它將開啟互動式 shell,作為 Mu 編輯器視窗底部的一個新面板。你應該在互動式 shell 中看到一個 >>> 提示符號。

你也可以從命令列終端(在 macOS 和 Linux 中)或 Windows 終端(在 Windows 中,你也可以使用較舊的命令提示應用程式)執行互動式 shell。開啟這些命令列視窗後,輸入 python(在 Windows 中)或 python3(在 macOS 和 Linux 中)。你將看到相同的 >>> 提示符號,以便啟動互動式 shell。如果你想執行一個程式,執行 pythonpython3 後面加上 .py 檔案,例如 python blank.py。請確保你在 macOS 的終端中不執行 python,因為這可能會在某些版本的 macOS 中啟動較舊的、向後不相容的 Python 2.7 版本。你可能會看到一條訊息,警告你 Python 2.7 不被推薦。離開 2.7 互動式 shell,改為執行 python3

在提示符號中輸入 2 + 2,讓 Python 執行一些簡單的數學運算。Mu 視窗現在應該看起來像這樣:

>>> 2 + 2
4
>>>

在 Python 中,2 + 2 被稱為一個表示式,是語言中最基本的程式設計指令。表示式由值(如 2)和運算元(如 +)組成,它們可以始終評估為單一值。這意味著你可以在 Python 程式碼中的任何地方使用表示式,而不是使用值。

在前面的範例中,2 + 2 評估為單一值 4。一個單一值沒有運算元的表示式也被視為一個表示式,雖然它只評估為它本身,如下所示:

>>> 2
2

Mu 編輯器有一個 REPL 按鈕,可以顯示具有 In [1]: 提示符號的互動式 shell。流行的 Jupyter Notebook 編輯器使用這種型別的互動式 shell。你可以像正常的 Python 互動式 shell 一樣使用這個互動式 shell。REPL 不是 Python 所特有的;許多程式語言也提供 REPL,以便你可以實驗它們的程式碼。

錯誤是可以接受的!

程式設計的基本原理

電腦的優點在於它們能夠精確地執行使用者給出的指令,但這同時也是它們的缺點。電腦無法使用常識來判斷使用者的意圖,因此如果程式中包含電腦無法理解的程式碼,程式將會當機並顯示錯誤訊息。然而,錯誤訊息不會對電腦造成任何損害,因此不要害怕犯錯。

在程式設計中,你會經常遇到錯誤訊息,即使你有數十年的經驗。錯誤訊息通常很籠統,需要查詢具體的錯誤訊息文字以獲得更多資訊。如果你使用 Mu 編輯器,複製高亮文字到剪貼簿的鍵盤快捷鍵是 CTRL-SHIFT-C,而在主檔案編輯器窗格中,快捷鍵是標準的 CTRL-C。

數學運算

程式設計涉及一些你可能不熟悉的數學運算:

  • 指數運算(或乘方)是將一個數字乘以自身若干次。例如,2 的 4 次方(或 2 的 4 次乘方),寫作 $2^4$ 或 2 ** 4,是指數字 2 乘以自身 4 次:$2 \times 2 \times 2 \times 2 = 16$。
  • 模數運算類別似於除法的餘數結果。例如,14 mod 4 的結果是 2,因為 14 除以 4 的餘數是 2。儘管 Python 的模數運算子是 %,但模數運算與百分比無關。
  • 整數除法與普通除法相同,但結果向下舍入。例如,25 除以 8 是 3.125,但 25 // 8 是 3,而 29 除以 10 是 2.9,但 29 // 10 是 2。

Python 運算元

你可以在 Python 表示式中使用許多其他運算元。例如,表 1-1 列出了 Python 中的所有數學運算元。

表 1-1: 數學運算元

運算元 運算 範例 結果
** 指數運算 2 ** 3 8
% 模數/餘數 22 % 8 6
// 整數除法 22 // 8 2
/ 除法 22 / 8 2.75
* 乘法 3 * 5 15
- 減法 5 - 2 3
+ 加法 2 + 2 4

Python 數學運算元的運算順序(也稱為優先順序)與數學類別似。** 運算元首先被評估,其次是 *///% 運算元從左到右評估,最後是 +- 運算元從左到右評估。你可以使用括號覆寫正常優先順序,如果需要的話。Python 中的運算元和值之間的空白字元不重要,除了行首的縮排。然而,慣例是運算元和值之間有一個空格。

內容解密:

# 測試運算順序
print(2 + 3 * 6)  # 結果:20
print((2 + 3) * 6)  # 結果:30
print(48565878 * 578453)  # 結果:28093077826734
print(2 ** 8)  # 結果:256

圖表翻譯:

@startuml
:指數運算; --> :乘法;
:B; --> :模數運算;
:C; --> :整數除法;
:D; --> :除法;
:E; --> :乘法;
:F; --> :減法;
:G; --> :加法;
@enduml

在這個圖表中,我們展示了不同數學運算元的關係和優先順序。指數運算優先於乘法、模數運算和整數除法,這些又優先於除法、乘法、減法和加法。

基礎運算與表示式

在 Python 中,運算子和運算元可以組合成表示式。運算子決定了對運算元進行的操作,例如加法、減法、乘法和除法等。讓我們來看看一些基本的運算例子:

整數運算

  • 23 / 7 會進行浮點數除法,結果為 3.2857142857142856
  • 23 // 7 會進行整數除法,結果為 3,這意味著結果會被截斷為最接近的整數。
  • 23 % 7 會計算餘數,結果為 2,這是 23 除以 7 後的餘數。

基本算術運算

  • 2 + 2 會將兩個數字相加,結果為 4

複雜表示式

  • (5 - 1) * ((7 + 1) / (3 - 1)) 會先計算括號內的運算,然後進行乘法和除法。結果為 16.0

Python 的運算遵循特定的順序,稱為運算優先順序,這確保了複雜的表示式能夠被正確地評估。

語法錯誤

當你輸入的 Python 程式碼不符合語法規則時,就會出現語法錯誤(SyntaxError)。例如:

  • 5 + 因為缺少運算元,所以是無效的。
  • 42 + 5 + * 2 因為 * 運算子沒有指定運算元,所以也是無效的。

這些錯誤會導致 Python 顯示一個 SyntaxError 訊息,指出錯誤的位置和原因。

實際應用

在實際應用中,理解和正確使用運算子、括號和運算元是非常重要的。這不僅能夠幫助你寫出正確的程式碼,也能夠提高你的程式效率和可讀性。

內容解密:

上述例子展示瞭如何使用基本的算術運算子進行計算。括號可以用來群組運算元和運算子,以確保正確的運算順序。理解這些基礎知識對於寫出有效且高效的 Python 程式碼至關重要。

圖表翻譯:

@startuml
:運算子; --> [選擇] :選擇;
:A; --> [選擇] :選擇;
:A; --> [選擇] :選擇;
:A; --> [選擇] :選擇;
:B; --> :結果;
:C; --> :F;
:D; --> :F;
:E; --> :F;
@enduml

這個圖表展示瞭如何根據不同的運算需求選擇合適的運算子,並得到最終的結果。

從技術架構視角來看,Python 提供了豐富的資料結構和函式庫,讓開發者能有效處理資料、自動化任務以及進行檔案操作。深入剖析 Python 的字串處理、檔案操作、網頁爬蟲以及資料函式庫整合能力,可以發現其在自動化流程設計上的優勢。然而,Python 的效能瓶頸,尤其在處理大量資料時,仍是一項挑戰,需要透過程式碼最佳化、演算法調整或整合其他效能導向的語言來克服。對於追求開發效率和快速原型設計的專案,Python 仍是理想的選擇。玄貓認為,Python 易學易用的特性使其成為自動化領域的利器,但開發者仍需重視其效能限制,並在實際應用中謹慎評估。