跳到主要內容

發表文章

目前顯示的是有「Python」標籤的文章

Python筆記(15)-將程式打包執行檔(使用pyinstaller模組)

當我們將我們想要的自動化功能使用程式語言設計完成後,我們會發現要程執行這個程式就必須安裝對應的程式語言,但當我們想將這個功能給其他人用的時候,這時候要特別安裝對應的程式語言,這樣會非常麻煩,所以比較好的解法是將程式語言打包成執行檔 ( 檔案類型為 .exe) ,這時候就可以在沒有安裝對應的程式語言也能夠執行, Python 針對程式打包成執行檔比較常使用的 pyinstaller 模組,以下我們介紹如何使用這個模組來打包程式變成執行檔。 15.1 常見的 pyinstaller 參數 我們講常用到的參數列表如下並說明每一個參數的意義。 15.2 建立執行檔 我們將建立執行檔的過程步驟化如下: Step1. 開啟 Anaconda Prompt 命令列視窗    Step2. 將路徑切換至 .py 檔的放置路徑。如果在不同槽,需先切換至另一個槽再修改路徑。 Step3. 輸入打包執行檔指令 這邊特別說明一下,這裡的 ico 檔路徑與 .py 檔路徑都是直接為檔名是因為目前的絕對路徑已經在 D:\Bolg 資料 \Python\Python(15) ,所以在這個路徑下的檔案,要填寫它們的路徑就不用再打上 D:\Bolg 資料 \Python\Python(15) 。 Step4. 開始打包 Step3. 完成後按下 Enter 就會開始進行打包,這個過程需要一點時間,尤其 .py 檔非常大,要等的時間比較久,如果打包成功會顯示下方畫面。 完成後,會出現 3 個檔案,分別是 build 、 dist 、 spec 檔,其中執行檔會放置在 dist 資料夾中,此時此執行檔即可直接執行 ( 沒有 python 環境亦可 ) 。 另外, spec 檔內包含打包過程中的參數設定,我們可以從中修改參數設定再透過以下指令就可以重新打包,不需要再重 Step1. 開始。 15.3 另一種打包執行檔的方式 我們用上述方法打包執行檔會發現所打包出來的執行檔的大小會很大,這是因為我們的 anaconda 在安裝時就安裝了許多套件,所以打包過程中會把不必要的套件也打包進去,這將使得打包過程會比較久且執行檔再執行的時候也會比較久。這裡我們提供一個比較簡單的方法,就是我們建立一個虛擬環境,在這個虛擬環境下我們只安裝最簡單的 python 軟體,這時候在...

Python筆記(13)-正規表達式

正規表達式是程式設計中一個強大的工具,可以針對大量且複雜的文本進行分析,可以利用模式匹配的方式找出目標字串並針對目標字串進行文本處理,可以大大提高文本分析的效率與準確性。 Python 程式語言要使用正規表達式相關函數必須使用 re 模組,所以使用前必須引進 re 模組。 13.1 re 模組 使用 re 模組找尋特定字串有兩個步驟, 1. 定義匹配模式 ( 即建立正規表達式物件 ); 2. 使用搜尋函數尋找特定模式的字串,我們將其整理在如下表格: 我們舉幾個例子說明如下: 這裡說明一下 <re.Match object; span=(0, 1), match='a'> 的意思,這個是一個 MatchObject ,其中 span=(0,1) 代表在第 0 的位置開始成功配對直到第 1 個位置配對失敗, march=’a’ 則表示配對到的字串為 ’a’ 。只有 match 與 search 在配對成功才會出現以上訊息,如果配對失敗則會出現 None 。 Findall 函數不管有無配對成功皆會輸出 list ,配對成功會將所有配對成功的字串以 list 輸出,如果配對失敗,則會輸出空的 list 。 13.2 正規表達式的特殊字元 (1) - . . 代表一個非換列字元 (\n) 以外的所有字元。範例如下: 13.3 正規表達式的特殊字元 (2) - * * 代表前一個項目可以出現 0~ 無限多次。範例如下: 13.4 正規表達式的特殊字元 (3) - + + 代表前一個項目可以出現 1~ 無限多次。範例如下: 13.5 正規表達式的特殊字元 (4) - ? ? 代表前一個項目可以出現 0~1 次。範例如下: 13.6 正規表達式的特殊字元 (5) - ^, $ ^ 表示開頭 ; $ 表示結尾。範例如下: 13.7 正規表達式的特殊字元 (6) - {} {m,n} 表示前一個項目最少出現 m 次 , 最多出現 n 次。 {m,} 表示前一個項目最少出現 m 次。 {,n} 表示前一個項目最多出現 n 次。 {m} 表示前一個項目出現 m 次。 範例如下: 13.8 正規表達式的特殊字元 (7) – [] [] 表示用來匹配 [] 內的字元。範例如下: 13.9 正規表達式的特殊字元 (8) – \ \ ...