python生成linux命令行工具

您是否也曾一直想生成類似cd, cat等小巧/迷人/實用的小工具作爲系統命令或者將python程序打包爲exe進行分發?ok,機會來了.利用python 的argparse 和 pyinstaller兩個庫就能輕鬆做到.

step1.按照python庫

source ~/workspace/python27/bin/activate
pip install argparse
pip install pyinstaller

 

step2. 寫好python程序, 以文件夾中隨機遷移move一部分爲例,生成rdmv命令

#!/usr/bin/env python
# coding=utf-8

import os
import random
import argparse

def rdmv(src, dst, cnt=10):
    fnames = [os.path.join(src, fname) for fname in os.listdir(src)]
    random.shuffle(fnames)
    for fname in fnames[:cnt]:
        os.system("mv %s %s" % (fname, dst))

if __name__ == '__main__':    
    parser = argparse.ArgumentParser(description='random mv files from source to dest path')
    parser.add_argument('s', type=str, help='source path')
    parser.add_argument('d', type=str, help='dest path')
    parser.add_argument('-n',type=int, help='mv file count, default is 10',  default=10)
    args = parser.parse_args()
    rdmv(args.s, args.d, args.n)

step3. 運行 pyinstaller 相關命令

pyinstaller -F rdmv.py
pyinstaller [參數] [腳本路徑] ,
該參數包括:
-F, --onefile Py代碼只有一個文件
-D, --onedir Py代碼放在一個目錄中(默認是這個)
-K, --tk 包含TCL/TK
-d, --debug 生成debug模式的exe文件
-w, --windowed, --noconsole 窗體exe文件(WindowsOnly)
-c, --nowindowed, --console 控制檯exe文件(WindowsOnly)
-X, --upx 使用upx壓縮exe文件
-o DIR, --out=DIR 設置spec文件輸出的目錄,默認在PyInstaller同目錄
-v FILE, --version=FILE 加入版本信息文件

step4. 分發命令, 在當前自動生成的分發文件夾dist下面找到可執行文件rdmv, 複製到系統/usr/local/bin下即可

sudo cp dist/rdmv /usr/local/bin/

step5. 然後就沒有然後啦,開始您的自定義命令行快樂之旅吧!

 

參考資料:

1.   作者:Gavin吃西瓜

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章