![]() 文末混脸熟活动不停,走心留言直接送书 看过这篇《2000字谏言,给那些想学Python的人,建议收藏后细看!》的读者应该都对一个命令有点印象吧?没错,就是 linux 中经常会用到的 ls 命令。文章中我就提到如何提升自己的 python 能力呢?直接找项目写,但是作为零基础 / 小白 / 入门 的你来说做一个博客还要学 web 框架、html、css、js,又成为了阻碍你写实际项目的阻碍。所以我就推荐了这个命令:ls。写一个 ls 非常简单,你只需要会一点 linux 的基础知识,知道 ls 能做什么就好了。那今天小金就给大家码了一个哪哪能用的 ls.py ,没错,windows 也可以哦~ 演示环境- 操作系统:windows10- python版本:python 3.7- idea:pycharm 2018.2- 使用模块:argparse, os 了解argparse模块 argparse是python的标准库,他可以使我们很友好的编写命令行界面,并且可以自动生成帮助文档和使用消息,还能在参数无效的时候发出错误。 argparse.ArgumentParse类参数理解 1. prog:改变应用的名字,我们可以使用`%(prog)s`引用应用的名字,默认的应用名字为文件名。2. usage: 显示这个命令用法, 一般用来显示参数的用法3. description:显示这个命令的帮助信息4. epilog: 显示命令的帮助信息,位置在参数的下面 argparse.ArgumentParser.add_argument函数理解 1. name | flags: 指定参数的名字2. action: 指定命令行参数,内置为以下几种 - store: 默认值,仅仅保存参数值。 - store_const: 与store基本一致,但是只保存const关键字指定的值,其它的值会报错 - store_true | store_false: 与store_const基本一致,只保存True和False - append: 将相同参数的不同值保存在一个list中 - count: 统计参数出现的次数 - help: 输出程序的帮助信息 - version: 输出程序版本信息3. nargs: 将不同数量的值与一个参数关联起来 - nargs=N:N为整数 - nargs='?' - nargs='*': 将所有的参数保存在列表中 - nargs='+': 将所有的参数保存在列表中,但是至少得有一个参数 - nargs=argparse.REMAINDER: 其余的参数全部保存在一个list中4. default: 如果没有传入这个参数,默认使用default参数的值5. type: 接收到的参数会经过这个参数对应的函数处理。6. choices: 将参数指定在一个范围内,超出就报错7. required: 指定参数是否为必传参数。8. dest: 自定义参数的名称,默认名称为 “- 后面的值” 或者 “-- 后面的值”。 编写ls命令脚本 这里我们就简单的指定三个参数.- -a: 添加 -a 参数,显示隐藏文件。- -r: 添加 -r 参数,递归显示文件夹下面的文件。- -d: 指定显示目录,如果不指定,默认为当前目录。 首先我们使用 ArgumentParser 类来指定参数。 import os 我们规定好参数之后,接下来就是具体ls的实现。我们封装一个 LsCommand 类 class LsCommand(): ls这个类我们也封装好了,接下来我们将得到的参数传入 LsCommand 类中,然后运行,就可以愉快的得出结果。 ls = LsCommand(bool(args.all), directory, bool(args.recursion)) 效果展示:python ls.py ![]() python ls.py -a ![]() python ls.py -a -r ![]() python ls.py -d ./temp ![]() [ 完 ] 今日赠送书籍 ![]() 线性代数是机器学习的基石复制淘口令“₤1dKVYk9ztn8₤”了解更多 本书简介 《机器学习线性代数基础:Python语言描述》适合实践于数据分析、信号处理等工程领域的读者,也适合在人工智能、机器学习领域进行理论学习和实践,希望筑牢数学基础的读者,以及正在进行线性代数课程学习的读者阅读。 恭喜 小小杰吖! 读者深得我心,各赠送书籍一本。 请 小小杰吖! 同学联系小胖:moonhmily1 ![]() 今日留言主题 你用python写过什么自觉有意思的工具吗? · 合作、交流请关注微信公号Python专栏(ID:xpchuiit),转载请添加微信moonhmily1 延伸阅读 Python
格局 ![]() 喜欢就在看吧 ---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:Python专栏,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ---------------------------------------------------------------------------------------------------------------------- |