您是否也曾一直想生成相似cd, cat等小巧/迷人/實用的小工具做爲系統命令或者將python程序打包爲exe進行分發?ok,機會來了.利用python 的argparse 和 pyinstaller兩個庫就能輕鬆作到.python
step1.按照python庫dom
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 相關命令spa
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. 而後就沒有而後啦,開始您的自定義命令行快樂之旅吧!debug
參考資料:code
1. 做者:Gavin吃西瓜blog