您是否也曾一直想生成类似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吃西瓜

python生成linux命令行工具的更多相关文章

  1. 20个linux命令行工具监视性能(下)

    昨天晚上第一次翻译了<20 Command Line Tools to Monitor Linux Performance>中的前十个命令,翻译得不是很好,今天晚上继续把后面的十个也翻译给 ...

  2. 两本最近阅读的工具书的记录 关于Python和Linux命令行的 不喜勿喷 只是写给自己用

    <Linux命令行完全技术宝典>读书心得 张栋作者 在学习Linux系统中,我们需要掌握各种管理的方法和技巧,而管理Linux系统最有效的方法就是命令行的控制.而我在图书馆中读到的< ...

  3. 20个linux命令行工具监视性能(上)

    对于每一个系统管理员或网络管理员每天监视或调试linux系统的性能问题是一件非常困难的事,在it行业作为一个linux管理员五年之后,我开始知道监视和保持系统启动和运行有多么的困难.由于这个原因,我们 ...

  4. 吻逗死(windows)系统下自动部署脚本(for java spring*)及linux命令行工具

    转载请注明出处:https://www.cnblogs.com/funnyzpc/p/10051647.html (^^)(^^)自動部署腳本原本在上個公司就在使用,由於近期同事需要手動部署一個Spr ...

  5. 其它综合-有趣的linux命令行工具-lolcat

    lolcat :一个在 Linux 终端中输出彩虹特效的命令行工具 何为Lolcat Lolcat 是一个针对 Linux,BSD 和 OSX 平台的工具,它类似于 cat,并为 cat 的输出添加彩 ...

  6. 28 个必备的 Linux 命令行工具

    dstat & sar iostat, vmstat, ifstat and much more in one. slurm 网络流量图形化工具 vim & emacs 这个没人不知道 ...

  7. Python解析Linux命令行

    写了个python脚本在linux需要传入参数使用,python参数传入有几个方法, 先用了Python中命令行参数的最传统的方法sys.argv linux cmd ~& python ma ...

  8. 10. 通过 Dockerfile 编写 linux 命令行工具

    测试 linux 压力的工具 一. 实际操作 1. 创建一个 ubuntu 的容器 docker run -it ubuntu 2. 安装 stress 工具 apt-get update & ...

  9. Linux命令行工具之vmstat命令

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11484608.html vmstat是一款指定采样周期和次数的功能性监测工具,可以使用它监控进程上下文 ...

随机推荐

  1. Linux下MySQL在知道密码的情况下修改密码

    1.在知道原密码的情况下,进入MySQL: mysql -u root -p 2.进入 mysql数据库,然后通过语句修改密码: 我的MySQL版本是:mysql  Ver 14.14 Distrib ...

  2. linux shell必知必会sed、awk

    sed是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往 ...

  3. ADO.NET读取配置文件

    App.config <?xml version="1.0" encoding="utf-8" ?> <configuration> & ...

  4. Python中使用多进程来实现并行处理的方法小结

    进程和线程是计算机软件领域里很重要的概念,进程和线程有区别,也有着密切的联系,先来辨析一下这两个概念: 1.定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和 ...

  5. C#/对线程的认识

    1.线程的优点和缺点,以及什么时候来考虑使用线程.多线程可以使得程序响应更快,程序在进行其他任务的同时,线程也处于活动状态.当前没有处理任务的时候,可以把处理器的时间让给其他任务可以随时停止任务可以设 ...

  6. pytorch怎么抽取中间的特征或者梯度

    for i, (input, target) in enumerate(trainloader): # measure data loading time data_time.update(time. ...

  7. 大数据学习-2 认识Hadoop

    一.什么是Hadoop? Hadoop可以简单的理解为一个数据存储和数据分析分布式系统.随着互联网的普及产生的数据是非常的庞大的,那么我们怎么去处理这么大量的数据呢?传统的单一计算机肯定是完成不了的, ...

  8. spark学习笔记_1

    简单的讲,Apache Spark是一个快速且通用的集群计算系统. Apache Spark 历史: 2009年由加州伯克利大学的AMP实验室开发,并在2010年开源,13年时成长为Apache旗下大 ...

  9. 小程序使用animation实现跑马灯

    html: <view class="marquee"> <view class="content"> <text>{{te ...

  10. JVM垃圾收集器-Serial收集器

    今天我给大家分享的是Serial收集器,垃圾收集器就是内存回收的具体实现.Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商,不同的版本的虚拟机所提供的垃圾收集器都可能会有很大 ...