在Window仿Linux终端命令学习Python

news2024/12/25 23:36:17

在Window仿Linux终端命令学习Python

  • Echox 命令 -- 主要带颜色输出
  • ls 命令
  • findx 命令
  • ~~待续~~

python3


Echox 命令 – 主要带颜色输出

查看 python输出颜色(终端控制台)

ls 命令

1、getopt 模块参数解析 : Python 命令行参数
2、os.getcwd() 获取当前目录
3、os.listdir(path) 返回path路径下文件列表。os.path.isfile、os.path.isdir 文件和目录判断
4、os.getenv 系统环境属性获取
5、colorama库实现颜色输出:python输出颜色(终端控制台)
6、pyinstall打包:Python程序打包为exe执行文件
7、win+R : sysdm.cpl 环境变量path中设置添加程序 ls.exe 路径

# ! /usr/bin/env python
# -*- coding: UTF-8 -*-

import sys
import os
import getopt
import cmdcolor

exts = os.getenv('PATHEXT').lower().split(';')


def isExt(filename):
    if os.path.isfile(filename):
        for ext in exts:
            if filename.lower().rfind(ext) >= 0:
                return True
    return False


# ===========================================

def main(argv):
    try:
        opts, args = getopt.getopt(argv, "df")
    except getopt.GetoptError:
        print('getopt.GetoptError: ' + " ".join(str(n) for n in argv))
        sys.exit(2)

    for opt, arg in opts:
        if opt in ['-d']:
            for dirname in os.listdir(os.getcwd()):
                if os.path.isdir(dirname):
                    print(cmdcolor.code_to_b256chars(2) + dirname + cmdcolor.RESET)
        elif opt in ['-f']:
            for dirname in os.listdir(os.getcwd()):
                if os.path.isfile(dirname):
                    if isExt(dirname):
                        print(cmdcolor.code_to_f256chars(2) + dirname + cmdcolor.RESET)
                    else:
                        print(dirname)

    if len(opts) == 0:
        for dirname in os.listdir(os.getcwd()):
            if isExt(dirname):
                print(cmdcolor.code_to_f256chars(2) + dirname + cmdcolor.RESET)
            elif os.path.isdir(dirname):
                print(cmdcolor.code_to_b256chars(2) + dirname + cmdcolor.RESET)
            else:
                print(dirname)


if __name__ == '__main__':
    main(sys.argv[1:])

在这里插入图片描述

findx 命令

1、getopt 模块参数解析 : Python 命令行参数
2、os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]]) 目录和子目录下的文件
3、fnmatch.filter 支持正则表达式的匹配
4、os.getcwd() 获取当前目录

# ! /usr/bin/env python
# -*- coding: UTF-8 -*-

import sys
import os
import getopt
import fnmatch


def search_file(filename):
    # print("xhbruce search_file: " + str(filename))
    for root, dirs, files in os.walk(os.getcwd()):
        for file in fnmatch.filter(files, filename):
            print(os.path.join(root, file))


def search_file2(filename):
    # print("xhbruce search_file2: " + str(filename))
    for root, dirs, files in os.walk(os.getcwd()):
        if root == os.getcwd():
            for file in fnmatch.filter(files, filename):
                print(os.path.join(root, file))


def main(argv):
    try:
        opts, args = getopt.getopt(argv, "s")
    except getopt.GetoptError:
        print("getopt.GetoptError: argv = " + str(argv))
        sys.exit(2)

    # print("xhbruce : " + str(opts) + str(args))
    for opt, arg in opts:
        if opt in ['-s']:
            search_file(args[0])

    if len(opts) <= 0:
        if len(args) > 0:
            search_file2(args[0])


if __name__ == '__main__':
    main(sys.argv[1:])

在这里插入图片描述

待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/727283.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么免费视频压缩器?这 9 个最佳免费视频压缩器教你轻松学会!

视频有多种格式、不同的大小和不同的压缩级别。但是&#xff0c;您可以使用最好的视频压缩器来&#xff1a; 减小文件大小提高压缩质量更好地服务您的观众 我们将列出九个领先的视频压缩软件精选&#xff0c;您今天可以免费使用它们来增强您的视频。 9 个顶级免费视频压缩软件…

7 字符和字符串的“+”操作

7.1 字符的“”操作 char类型的数据参与加法运算。如下&#xff1a; char a A; int b 10 ; int c a b ; System.out.println(c); 结果如下&#xff1a; 接收结果使用的是int数据类型&#xff0c;按照相加时哪个数据类型大&#xff0c;结果就是哪个数据类型的规则&#xff…

CMake 使用教程 (四)

1.0 日志 在 CMake 中可以用用户显示一条消息&#xff0c;该命令的名字为 message&#xff1a; message([STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR] "message to display" ...)(无) &#xff1a;重要消息STATUS &#xff1a;非重要消息WARNING&#…

51从零开始学Java之详解Java中的包装类

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在上一篇文章中&#xff0c;壹哥给大家介绍了Java中的Object类&#xff0c;它属于我们开发时的常用类…

2023(WAIC)智能驾驶科技峰会丨拓数派大模型下的数据计算系统,助力汽车智能化产业数据增值

2023 智能驾驶科技峰会在上海圆满落幕&#xff0c;本次大会由世界人工智能大会&#xff08;WAIC&#xff09;组委会办公室指导&#xff0c;浦东新区人民政府支持&#xff0c;浦东新区科技和经济委员会、中国 &#xff08;上海&#xff09;自由贸易试验区管理委员会金桥管理局主…

【SAP-ABAP】RPR_ABAP_SOURCE_SCAN 搜索带特定字符串的程序

昨日问了懒神&#xff0c;才知道还有这功能&#xff0c;真好用 业务背景&#xff1a;需要查找系统中有哪些程序带了特定的字符串&#xff08;一般类似于某些条件写死了&#xff09; 程序&#xff1a;RPR_ABAP_SOURCE_SCAN 程序&#xff1a;RS_ABAP_SOURCE_SCAN SE38执行程序…

Blazor前后端框架Known功能介绍:系统安装激活及自定义

本章介绍系统安装与激活及其自定义功能。 概述 框架内置简单的系统安装功能。录入企业编码、名称、系统名称、产品密钥、管理员密码信息完成安装。可自定义高级安装功能&#xff0c;如安装数据库等您产品所需的安装信息。框架默认无需注册产品密钥&#xff0c;若产品需要安装…

【腾讯云IM】即时通讯的登录,登出,用户列表,私聊,图片发送

uniapp即时通讯 1&#xff0c;初始化&#xff08;刚开始就紧跟着文档走&#xff09;2&#xff0c;App.vue中项目引入腾讯云&#xff0c;&#xff08;附上账号在其他地方登陆的监听&#xff09;3&#xff0c;登录前必需3.1&#xff0c;获取登录id3.2&#xff0c;生成userSig&…

K8s 内存泄漏处理方法

问题描述&#xff1a; 1. 安装go环境 2. 下载地址: https://golang.google.cn/dl/[rootk8s-master home]# rm -rf /usr/local/go && tar -C /usr/local/ -zxvf go1.17.3.linux-amd64.tar.gz3. 永久配置go 环境[rootk8s-master home]# vim /etc/profile export GOPATH…

win10、mac如何使用desktop中的docker

1、安装相应系统的docker&#xff0c;安装完什么都不需要修改。 2、需要安装mysql的话首先使用命令行 3、需要把mysql等其他软件端口映射出来使用的命令 4、搞定&#xff1b;点击关闭和启动 可以安装很多软件哦&#xff0c;非常方便两条命令搞定&#xff0c;mysql、redis、mogo…

建筑物防雷工程的设计与施工

本文会介绍建筑物防雷工程的设计与施工的基本原理、方法和要求&#xff0c;以及一些典型的案例分析。建筑物防雷工程是为了保护建筑物及其内部设备、人员和财产免受雷电危害而采取的一系列技术措施。建筑物防雷工程应遵循《建筑物防雷设计规范》GB 50057-2010和《建筑物防雷工程…

ros2 机器人imu传感器 加速度计 陀螺仪精度和数据填充单位换算

起因&#xff0c;imu解算出了加速度 角速度&#xff0c;但原始数据是没有单位的&#xff0c;只是在一个精度范围的值&#xff0c;要使用这些数据&#xff0c;就需要把这些没有单位的数据换算成带单位的数据&#xff0c;下面解说一下换算原理。 imu读取数据代码参考上期的博客&…

什么是操作系统中的kernel

什么是操作系统中的kernel 一&#xff0c;图解&#xff0c;kernel在操作系统中的结构位置 二&#xff0c;文字描述解释 系统启动后,Kernel会常驻内存,负责系统的基础功能, 如进程调度,硬件管理.普通程序就是用户态程序, 在Kernel中的程序叫做内核态程序. 普通程序如果想申请…

经典图像识别卷积神经网络总结记录

这篇博文主要是延续前文系列的总结记录&#xff0c;这里主要是总结汇总日常主流的图像识别模型相关知识内容。 下面对上述列出的卷积神经网络模型进行逐个详细介绍、算法原理分析以及优缺点总结&#xff1a; (1)LeNet-5 算法原理&#xff1a; LeNet-5是最早应用于手写数字识别…

(22)LED灯(外部)

文章目录 前言 22.1 带有I2C连接的RGB LEDs/显示器 22.2 串行连接的设备 22.3 NTF LED的含义 前言 外部 LED 或 LED 显示屏可以通过连接到自动驾驶仪的 I2C 端口&#xff0c;或者在 4.0 及以后的版本中&#xff0c;如果是串行编程的设备&#xff0c;可以通过输出使用 SERV…

【Redis】3、Redis 作为缓存(Redis中的穿透、雪崩、击穿、工具类)

目录 一、什么是缓存二、给业务添加缓存&#xff08;减少数据库访问次数&#xff09;三、给店铺类型查询业务添加缓存(1) 使用 String 类型(2) 使用 List 类型 四、缓存的更新策略(1) 主动更新(2) 最佳实现方案(3) 给查询商铺的缓存添加超时剔除和主动更新的策略① 存缓存&…

mysql 练习---表和表的字段的增删改

环境&#xff1a; 命令&#xff1a; (1)create database Market; (2) create table customers( c_num int(11) primary key auto_increment, c_name varchar(50), c_contact varchar(50), c_city varchar(50), c_birth datetime not null );(3) alter table customers mod…

[github-100天机器学习]day1 data preprocessing-版本问题已修正

https://github.com/LiuChuang0059/100days-ML-code/blob/master/Day1_Data_preprocessing/README.md#step-6-feature-scaling—特征缩放 数据预处理 导入库&#xff1a;numpy包含数学计算函数&#xff0c;pandas用于导入和管理数据集 #!/usr/bin/env python3 # -*- coding: …

flutter 更新分支内容

有三个分支&#xff0c;主分支&#xff0c;A分支&#xff0c;B分支&#xff0c;别人在B分支开发了内容&#xff0c;我在A分支进行开发。别人在B分支提交了代码&#xff0c;让我去拉下来。这时候我就是需要切到B分支&#xff0c;拉代码下来&#xff0c;然后再回到A分支&#xff…