import argparse
from pathlib import Path
from datetime import datetime
import statparse = argparse.ArgumentParser(prog='ls', add_help=False, description='list directory contents') #获得一个解析器参数
parse.add_argument('path', nargs='?', default='.', help="directory") #用?代表位置参数,可有可无
parse.add_argument('-l', action='store_true', dest='long', help='use a long listing format')
parse.add_argument('-a', '--all', action='store_true', help='show all files, do not ignore entries starting with .')
parse.add_argument('-r', '--reverse', action='store_true', help='reverse order while sorting')
parse.add_argument('-h', '--human-readable', action='store_true', dest='human',help='with -l, print sizes in human readable format')def listdir(path, all=False, detail=False, reverse=False, human=False):'''详细列出本目录'''def _gethuamn(size:int):   #文件大小以human format显示untils = ' KMGT'depth = 0while size > 1000 and depth < len(untils) - 1:  #当前size大于1000,且depth不是最后一个进入循环depth += 1size //= 1000return '{}{}'.format(size, untils[depth] if depth else '')def _listdir(path, all, detail, reverse, human):p = Path(path)for i in p.iterdir():if not all and i.name.startswith('.'):   #去除不显示所有和以点开头的隐藏文件continueif not detail:yield (i.name,)else:st = i.stat()      # 文件的相关信息mode = stat.filemode(st.st_mode)    # 通过Python自带的模块得到文件权限mtime = datetime.fromtimestamp(st.st_atime).strftime('%Y-%m-%d %H:%M:%S')size = st.st_size if not human else _gethuamn(st.st_size)yield (mode, st.st_nlink, st.st_uid, st.st_gid, size, mtime, i.name)return sorted(_listdir(path, all, detail, reverse, human), key=lambda x:x[len(x)-1], reverse=reverse)if __name__ == '__main__':args = parse.parse_args()  # 分析参数, 同时传入可迭代参数# print(args)# parse.print_help()       #打印帮助files = listdir(args.path, args.all, args.long, args.reverse, args.human)print(*files, sep='\n')##测试python xxx.py -lha
##测试python xxx.py -lha /tmp

用argparse实现ls -lha等linux命令格式展示相关推荐

  1. Linux学习之第二课时--linux命令格式及命令概述

    命令概述 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘管理,文件存取,目录操作,进程管理,文件权限设定等 Linux命令格式 Linux命令的组成部分:命令字   命令选项参数( ...

  2. Linux命令格式及帮助命令详解

    昨天看了一个教程,关于Linux命令的,本来以为当是复习随便看看的,结果看了不禁汗颜,这个真挺有学问的,很多东西都是我还不知道的,故此做总结,此文适合于对Linux命令有一定了解但又不是很深入的孩子, ...

  3. 解读Linux命令格式

    解读Linux命令格式 环境 Linux HA5-139JK 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_ ...

  4. linux.命令格式,【Linux基础知识】Linux命令格式介绍

    Linux系统中每一命令都提供特定的系统功能,尽管命令繁多,但是在命令的使用形式上存在一定的共性,概况起来,Linux命令具有下面的通用格式: 命令字 [选项] [参数] ("[ ]&quo ...

  5. Linux命令格式查询目录中的内容

    Linux常用命令 1.  [root@localhost~]# ·  root:代表当前登录用户,Linux当中管理员账户是root而不是administrater! ·  @:没有特殊含义 ·  ...

  6. linux命令格式化为exfat,如何在 Linux 上将 USB 盘格式化为 exFAT | Linux 中国

    本教程教你如何在 Linux 系统上以 exFAT 格式格式化 USB 盘.同时包括 GUI 和命令行两种方法. https://linux.cn/article-12294-1.html 作者:Di ...

  7. Linux的命令——“cd”(内附Linux命令格式,相对路径和绝对路径)

    内容预知 目录 1.Linux的 命令格式书写 1.2 选项的用法 1.3 参数 2.绝对路径与相对路径 3.对终端中默认"[root@localhost ~]"#的认识 4.七种 ...

  8. linux命令格式和常用命令

    Linxu命令使用格式 ~]#COMMAND OPTIONS ARGUMENTS CMMMAND:发起一命令:请求内核将某个二进制程序运行为一个进程: OPTIONS:指定命令的运行特性: 短选项:- ...

  9. linux命令格式与快捷键

    linux内核版本 xx.yy.zz 主版本号.次版本号.末版本号(修订的次数) 次版本号--奇数时,开发版:偶数时,稳定版(企业应用) #uname -r 版本号 #shutdown -h now ...

最新文章

  1. 实践自定义UI-ViewGroup
  2. Linux下Verilog仿真过程(一)
  3. 太原冶金技师学院计算机系,山西冶金技师学院2021年招生简章
  4. 【Tyvj1783】【codevs2418】【BZOJ1856】字符串,厉害的组合数与模型转换
  5. intelRealsense D435 python读取并显示彩图和深度图
  6. 使用nginx反向代理获取百度MP3的真实网址
  7. 博客linux系统下载器,linux的下载工具
  8. unity camera aspect
  9. 图像处理软件-Adobe Illustrator 2020-位图转化为矢量图
  10. ceph部署-纠删码
  11. html 固定表头和左侧列,纯css实现固定表头和锁定列
  12. 安装XAMPP遇到的问题(一)——要求关闭UAC以及权限问题
  13. xp计算机用户账户密码删除,xp强行删除管理员开机密码
  14. 科技爱好者周刊:第 75 期
  15. 关于HTML学习重点-绝对布局和相对布局总结
  16. maya加载不了arnold的mtoa可能是这个低级错误!
  17. 阿拉伯数转中文与英文[找到规律,抽象问题,转换成代码]
  18. ASP.NET MVC 音乐商店 - 0 概览
  19. ClickHouse and K8s
  20. Android进程保活主流方案

热门文章

  1. 杰奇1.7用php53,杰奇1.7模板一库多站配置教程
  2. DockOne微信分享(一零五):度量驱动的DevOps转型
  3. 微软 Edge 浏览器怎样安装插件
  4. CHROME扩展开发之·迁移到 Manifest V3
  5. 1366 mysql_mysql出现ERROR 1366 (HY000):的解决办法
  6. error 1366
  7. 09永恒之蓝与永恒之黑的复现
  8. JAVA JSP水费管理系统JSP电费管理系统JSP缴费管理系统JSP水费缴费系统JSP水电费管理
  9. arch linux添加用户,Arch Linux配置教程
  10. vmware worlstation15.5 打开虚拟机报错 :operation inconsistent with current state!