练习1:

  利用os模块编写一个能实现dir -l输出的程序(注意:dir /l是windows下命令)

  1. #!_*_coding:utf-8_*_
  2. # Author: hkey
  3. import os, time
  4. base_dir = input('enter your dir:') # 手动输入绝对目录
  5. class file_total(object):
  6. '''获取文件及目录属性'''
  7. def __init__(self, path):
  8. self.__path = path
  9. def file_sum(self):
  10. '''统计文件及目录总数'''
  11. for root, dirs, files in os.walk(self.__path, topdown=False):
  12. f_sum = 0
  13. d_sum = 0
  14. for name in files:
  15. f_sum += 1
  16. for name in dirs:
  17. d_sum += 1
  18. return f_sum, d_sum
  19. def file_stat(self):
  20. '''获取具体文件及目录属性'''
  21. for f in os.listdir(self.__path):
  22. dir = os.path.join(self.__path, f)
  23. # print(f)
  24. os_stat = os.stat(dir)
  25. # 日期(年/月/日)
  26. file_date = time.strftime('%Y/%m/%d', time.localtime(os_stat.st_mtime))
  27. # 时间(时分秒)
  28. file_time = time.strftime('%H:%M', time.localtime(os_stat.st_mtime))
  29. # 文件及目录大小
  30. file_size = os_stat.st_size
  31. # 文件名
  32. file_name = f+'\t'
  33. if os.path.isfile(dir):
  34. file_stat = '<file>'
  35. elif os.path.isdir(dir):
  36. file_stat = '<dir>\t'
  37. print(file_date,'\t',file_time,'\t',file_stat,'\t',file_size,'\t',file_name)
  38.  
  39. f = file_total(base_dir)
  40. f_stat = f.file_sum()
  41. print(f.file_stat())
  42. print('\t %s 个文件\n\t %s 个目录' % (f_stat[0], f_stat[1]))

  练习1主要使用到了os模块,os.walk方法很好用。

练习2:

  编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。

  1. #!_*_coding:utf-8_*_
  2. # Author: hkey
  3. import os, re
  4. file_list = list()
  5. # base_dir = input('enter your dir:')
  6. find_str = input('enter your file str:')
  7. for root, dirs, files in os.walk('.', topdown=False):
  8. for name in files:
  9. if re.search(find_str, name):
  10. print(os.path.join(root, name))

  练习2主要使用到re正则匹配,str类型通过find和index都无法实现判断。

[ Python - 8 ] 简单demo练习的更多相关文章

  1. 用 python实现简单EXCEL数据统计

    任务: 用python时间简单的统计任务-统计男性和女性分别有多少人. 用到的物料:xlrd 它的作用-读取excel表数据 代码: import xlrd workbook = xlrd.open_ ...

  2. [tornado]websocket 最简单demo

    想法 前两天想看看django 长轮询或者是websocket的方案,发现都不太好使. tornado很适合做这个工作,于是找了些资料,参照了做了个最简单demo,以便备用. 具体的概念就不说了,to ...

  3. Django实战(一)之简单Demo

    菜鸟教程上Django安装可供参考: 参考链接: http://www.runoob.com/django/django-install.html 菜鸟教程上如果不行的话,下面博客网址可以供参考 Li ...

  4. 在cengos中安装zabbix server/agent, 并创建一个简单demo

    添加zabbix更新源 rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch ...

  5. 用python实现简单EXCEL数据统计的实例

    用python实现简单EXCEL数据统计的实例 下面小编就为大家带来一篇用python实现简单EXCEL数据统计的实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 任 ...

  6. 设计模式之单例模式的简单demo

    /* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...

  7. Spring的简单demo

    ---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...

  8. Python 实现简单的 Web

    简单的学了下Python, 然后用Python实现简单的Web. 因为正在学习计算机网络,所以通过编程来加强自己对于Http协议和Web服务器的理解,也理解下如何实现Web服务请求.响应.错误处理以及 ...

  9. 使用Spring缓存的简单Demo

    使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...

随机推荐

  1. rcnn caffe matlab 配置完成 14.04 cuda 7.0

    http://blog.csdn.net/real_myth/article/details/42672381 各种痛苦.实验室网速还是龟速. 莫名其妙的错误. gcc还降级到4.7,opencv 3 ...

  2. 【SSH】——封装参数不确定的分页查询

    [前言] 在BS中,分页技术的应用相当频繁.说到分页,简单的分页就很好实现了,如果在分页的基础上再加上业务逻辑,这就使得分页的技术更加的灵活了. [简单分页] 我们先看一种简单的分页,为了做到复用,我 ...

  3. 基于网络的 Red Hat 无人值守安装

    基于网络的 Red Hat 无人值守安装 本文介绍了 PC 平台上的一种快速 Red Hat Linux 安装方案.它具有很高的自动化程度--用户只需手工启动机器并选择从网络启动,就可以完成整个安装过 ...

  4. mysql类型与java类型对应异常场景

    MySQL的bigint unsigned类型,对应java的BigInteger类型,在基于mybatis框架时,如果我将bigint unsigned类型的字段的返回放在一个map的返回类型中时. ...

  5. 【Python】PYTHON九九乘法表

    python2.7 for i in range(1,10):  for j in range(1,i+1):    print j,'x',i,'=',j*i,'\t',  print '\n'pr ...

  6. setCharacterEncoding 是在request.getParameter获取参数之前 设置request的编码格式 一步到位

    setCharacterEncoding 是在request.getParameter获取参数之前 设置request的编码格式 一步到位

  7. P2168 [NOI2015]荷马史诗

    题目描述 追逐影子的人,自己就是影子 ——荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是由<奥德赛&g ...

  8. [Leetcode] Same tree判断是否为相同树

    Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...

  9. BZOJ2729 [HNOI2012]排队 【高精 + 组合数学】

    题目链接 BZOJ2729 题解 高考数学题... 我们先把老师看做男生,女生插空站 如果两个老师相邻,我们把他们看做一个男生,女生插空站 对于\(n\)个男生\(m\)个女生的方案数: \[n!m! ...

  10. BZOJ4785 [Zjoi2017]树状数组 【二维线段树 + 标记永久化】

    题目链接 BZOJ4785 题解 肝了一个下午QAQ没写过二维线段树还是很难受 首先题目中的树状数组实际维护的是后缀和,这一点凭分析或经验或手模观察可以得出 在\(\mod 2\)意义下,我们实际求出 ...