2017-06-02

Python 執行檔

指定 Python 版本

由於可以同時安裝多個版本的 Python,因此 Python 須指名使用的 Python 版本。

在 Windows 上,每個 Python 檔案都要加上以下的檔頭,表示使用 Python 3。
#!python3
而在 Linux 上,則是加上以下的檔頭。
#!/usr/lib/python3
這是從命令提示字元下執行 Python 檔案才需要指定版本的檔頭,如果是從 IDLE 或者直接執行 python.exe,就不需要指名版本,因為已經在特定版本的 Python 環境裡了。

hello.py
#!python3
print('Hello Python!')
之前都是用 python.exe 執行 py 檔,加上檔頭後可以改用 py.exe 執行 py 檔,py.exe 的特色在於會讀取 #! 並使用對應的 Python 版本來執行。

D:\_Work\python361>py hello.py
Hello Python!

Windows 執行檔

在 Windows 可以建立 bat 來方便執行 Python。

hello.bat
@py.exe -O D:\_Work\python361\hello.py %*
@pause
-O 表示停用 aassert,可以增加一點效能,%* 表示將傳入 bat 的參數全部轉傳給 py。

在 Python 裡可以用 sys.argv 取得傳入的參數(list of str),第一個 item 永遠是 Python 檔案名稱(包含全部路徑),第二個以後的 item 才是傳入參數(如果有的話)。

hello.py
#!python3
import sys
if len(sys.argv) > 1:
    print('Hello {}!'.format(' '.join(sys.argv[1:])))
else:
    print('Hello Python!')

print(sys.argv)
D:\_Work\python361>hello.bat Neil Chan
Hello Neil Chan!
['D:\\_Work\\python361\\hello.py', 'Neil', 'Chan']
請按任意鍵繼續 . . .

D:\_Work\python361>hello.bat
Hello Python!
['D:\\_Work\\python361\\hello.py']
請按任意鍵繼續 . . .

用 pyperclip 剪貼簿取代檔案讀取

以前要處理檔案,都是在程式裡開啟檔案並讀取內容,有了剪貼簿套件,可以省略這段程式,改以更彈性的方式讀取外部內容。

clip.py
#!python3
import pyperclip
lines = pyperclip.paste()
print(lines)
複製待處理文字後,執行 Python。
D:\_Work\python361>clip.bat
顧荷包看清楚!6月新制上路
脫了馬來衫 府前憲兵換勁裝
106國中會考 落點分析 選填志願
請按任意鍵繼續 . . .
只要每次執行前複製不同的內容,就可以直接處理,而不需要修改程式或改變傳入參數,這在重複處理大量外部即時來源時,相當方便。
---
---
---

沒有留言:

張貼留言