Python模拟ls命令

zh
zh
zh
26
文章
0
评论
2020-04-1709:05:00 评论 1,053 793字
摘要

用python写一个ls命令脚本,以练习python基础。ls是Linux下最常用的命令之一,可以列出目录内文件即子目录名,可以配合众多参数使用。

写一个程序 lsrm 要求如下:

模拟linux的命令ls部分功能

当使用命令

lsrm -ll

显示目录下所有 py 结尾的文件

增加难度 (使用递归显示所有目录里的 py 结尾文件)

首先定义一个outputFile函数,参数只设置一个infile,表示的是文件名或者目录名,然后进行判断,如果是文件,而且以py结尾,则输出;否则,如果是目录,则循环遍历每个每个文件。代码如下:

  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Wed Oct 28 19:25:20 2015
  4. @author: liudiwei
  5. """
  6. import os
  7. def outputFile(infile):
  8. if os.path.isdir(infile):
  9. filelist = getFileList(infile)
  10. for eachfile in filelist:
  11. os.chdir(infile)
  12. outputFile(eachfile)
  13. os.chdir("..")
  14. else:
  15. if ".py" in infile:
  16. print infile
  17. if __name__=="__main__":
  18. filepath = r"F:CSUAcademicanalysisexperimentcode";
  19. filelist = getFileList(filepath)
  20. while True:
  21. command = raw_input("# " )
  22. if command == "lsrm -ll":
  23. outputFile(filepath)
  24. elif command == "stop":
  25. break

运行结果如下图所示:

  1. ![output](/assets/images/20151029094653.png)

注意:在寻找子目录的文件时,需将工作目切换到子目录,档子目录遍历完毕后,再前换到上一层目录os.chdir("..").

End.

作者:拾毅者

来源:『刘帝伟』维护的个人技术博客

本文均已和作者授权,如转载请与作者联系。

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: