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吃西瓜


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM