会用python把linux命令写一遍的人,进大厂有多容易?
如果你选择了IT行业并坚定的走下去,这个方向肯定是没有一丝问题的,这是个高薪行业,但是高薪是凭自己的努力学习获取来的,这次我把P8大佬用过的一些学习笔记(pdf)都整理在本文中了《Java中高级核心知识全面解析》小米商场项目实战,别再担心面试没有实战项目:《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!》**[外链图片转存中…(img-qlO7chj
所以我就推荐了这个命令:ls。写一个 ls 非常简单,你只需要会一点 linux 的基础知识,知道 ls 能做什么就好了。
那今天就给大家码了一个哪哪能用的 ls.py ,没错,windows 也可以哦~
演示环境
====
-
操作系统:windows10
-
python版本:python 3.7
-
idea:pycharm 2018.2
-
使用模块:argparse, os
了解argparse模块
============
argparse是python的标准库,他可以使我们很友好的编写命令行界面,并且可以自动生成帮助文档和使用消息,还能在参数无效的时候发出错误。
argparse.ArgumentParse类参数理解
-
prog:改变应用的名字,我们可以使用
%(prog)s
引用应用的名字,默认的应用名字为文件名。 -
usage: 显示这个命令用法, 一般用来显示参数的用法
-
description:显示这个命令的帮助信息
-
epilog: 显示命令的帮助信息,位置在参数的下面
argparse.ArgumentParser.add_argument函数理解
-
name | flags: 指定参数的名字
-
action: 指定命令行参数,内置为以下几种
-
store: 默认值,仅仅保存参数值。
-
store_const: 与store基本一致,但是只保存const关键字指定的值,其它的值会报错
-
store_true | store_false: 与store_const基本一致,只保存True和False
-
append: 将相同参数的不同值保存在一个list中
-
count: 统计参数出现的次数
-
help: 输出程序的帮助信息
-
version: 输出程序版本信息
- nargs: 将不同数量的值与一个参数关联起来
-
nargs=N:N为整数
-
nargs=‘?’
-
nargs=‘*’: 将所有的参数保存在列表中
-
nargs=‘+’: 将所有的参数保存在列表中,但是至少得有一个参数
-
nargs=argparse.REMAINDER: 其余的参数全部保存在一个list中
-
default: 如果没有传入这个参数,默认使用default参数的值
-
type: 接收到的参数会经过这个参数对应的函数处理。
-
choices: 将参数指定在一个范围内,超出就报错
-
required: 指定参数是否为必传参数。
-
dest: 自定义参数的名称,默认名称为 “- 后面的值” 或者 “-- 后面的值”。
编写ls命令脚本
========
这里我们就简单的指定三个参数.
-
-a: 添加 -a 参数,显示隐藏文件。
-
-r: 添加 -r 参数,递归显示文件夹下面的文件。
-
-d: 指定显示目录,如果不指定,默认为当前目录。
首先我们使用 ArgumentParser 类来指定参数。小编整理一套Python资料和PDF,有需要Python学习资料可以加学习群:631441315 ,反正闲着也是闲着呢,不如学点东西啦~~
import os
import argparse
parser = argparse.ArgumentParser(prog=‘ls’, description=‘显示文件夹下的文件’)
指定参数
parser.add_argument(‘-a’, ‘–all’, const=True, nargs=‘?’, help=‘是否显示隐藏文件’)
parser.add_argument(‘-d’, ‘–directory’, help=‘指定显示的目录,如果不指定,默认为当前目录’)
parser.add_argument(‘-r’, ‘–recursion’, const=True, nargs=‘?’, help=‘是否递归显示’)
解析参数
args = parser.parse_args()
拿到directory参数,如果没有传这个参数,为None
directory = args.directory
如果directory有值
if directory:
如果指定目录不存在,抛出异常
if not os.path.exists(directory):
raise ValueError(f’{directory} does`t exist’)
如果directory不是一个目录,抛出异常
if not os.path.isdir(directory):
raise ValueError(f’{directory} is not a directory’)
如果directory为None,给directory赋值
else:
directory = ‘.’
我们规定好参数之后,接下来就是具体ls的实现。我们封装一个 LsCommand 类
class LsCommand():
def init(self, show_all=False, directory=‘.’, recursion=False):
‘’’
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

总结
如果你选择了IT行业并坚定的走下去,这个方向肯定是没有一丝问题的,这是个高薪行业,但是高薪是凭自己的努力学习获取来的,这次我把P8大佬用过的一些学习笔记(pdf)都整理在本文中了
《Java中高级核心知识全面解析》
小米商场项目实战,别再担心面试没有实战项目:
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
》**
[外链图片转存中…(img-qlO7chjT-1711883864199)]
小米商场项目实战,别再担心面试没有实战项目:
[外链图片转存中…(img-kJGKERz6-1711883864199)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)