使用python实现ls命令(3)

概要

打算用python写一个ls命令脚本,以练习python基础。这个文档就是记录该小项目的进展和学习心得。

ls是Linux下最常用的命令之一,可以列出目录内文件即子目录名,可以配合众多参数使用。为此专门查看了Linux下man手册(我用ceontos7做的测试,其他Linux应该一样。但Windows环境下会有差异,比如Windows隐藏文件的方式与Linux不一样)。可以跳转首篇 查看这个小项目。

参数-A

--20191110

看来对ls命令没有深入了解。刚刚看man手册时才发现ls -a的意义,及和ls -A的区别。之前参数-a的代码其实完成了参数-A的工作。

-a要显示"."和"..",而-A不显示。"."表示当前目录,".."表示上级目录。我试了下,即使在根目录下ls -a也会显示".."。这样的话就不需要判断该目录是否有父目录了。即,只需加上"."和".."。

下面是ls的python代码:

import os

doc=os.listdir()

for i in doc:
    str1=i[0:1]
    if str1 != '.':
        print(i)

下面是ls -a的python代码

import os

doc=os.listdir()

print(".")
print("..")

for i in doc:
    print(i)

下面是ls -A的python代码:

import os

doc=os.listdir()

for i in doc:
        print(i)

现在已经实现ls``ls -a``ls -A三条命令,但是需要三个独立的脚本调用。合并到一个python脚本,需要设计传参。传参使用到sys里的argv模块。

下面是整合ls``ls -a``ls -A三条命令的python代码:

import os
import sys

doc = os.listdir()

if len(sys.argv) == 1 :
    for i in doc:
        if i[0] != '.':
            print(i)
elif len(sys.argv) == 2:
    if sys.argv[1] == "-a":
        print(".")
        print("..")
        for i in doc:
            print(i)
    elif sys.argv[1] == "-A":
        for i in doc:
            print(i)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 6,273评论 0 10
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,664评论 0 5
  • 第 2 章 SHELL 基础知识2.1 shell脚本我们在上面简单介绍了一下什么是shell脚本,现在我们来进一...
    LiWei_9e4b阅读 1,635评论 0 0
  • 概要 打算用python写一个ls命令脚本,以练习python基础。这个文档就是记录该小项目的进展和学习心得。 l...
    awsome365阅读 571评论 0 0
  • 1.命令格式:ifconfig [网络设备] [参数] 2.命令功能: ifconfig 命令用来查看和配置网络设...
    Nuuuu阅读 4,087评论 0 12

友情链接更多精彩内容