概要
打算用python寫一個ls命令腳本,以練習(xí)python基礎(chǔ)滋觉。這個文檔就是記錄該小項目的進展和學(xué)習(xí)心得豌熄。
ls
是Linux下最常用的命令之一顷歌,可以列出目錄內(nèi)文件即子目錄名,可以配合眾多參數(shù)使用邻储。為此專門查看了Linux下man手冊(我用ceontos7做的測試赋咽,其他Linux應(yīng)該一樣。但Windows環(huán)境下會有差異吨娜,比如Windows隱藏文件的方式與Linux不一樣)脓匿。可以跳轉(zhuǎn)首篇 查看這個小項目宦赠。
參數(shù)-A
--20191110
看來對ls
命令沒有深入了解陪毡。剛剛看man手冊時才發(fā)現(xiàn)ls -a
的意義,及和ls -A
的區(qū)別勾扭。之前參數(shù)-a的代碼其實完成了參數(shù)-A的工作毡琉。
-a要顯示"."和"..",而-A不顯示妙色。"."表示當(dāng)前目錄桅滋,".."表示上級目錄。我試了下身辨,即使在根目錄下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)
現(xiàn)在已經(jīng)實現(xiàn)ls``ls -a``ls -A
三條命令泌豆,但是需要三個獨立的腳本調(diào)用。合并到一個python腳本萧落,需要設(shè)計傳參践美。傳參使用到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)