[ Python - 8 ] 简单demo练习
练习1:
利用os模块编写一个能实现dir -l输出的程序(注意:dir /l是windows下命令)
#!_*_coding:utf-8_*_
# Author: hkey
import os, time
base_dir = input('enter your dir:') # 手动输入绝对目录
class file_total(object):
'''获取文件及目录属性'''
def __init__(self, path):
self.__path = path
def file_sum(self):
'''统计文件及目录总数'''
for root, dirs, files in os.walk(self.__path, topdown=False):
f_sum = 0
d_sum = 0
for name in files:
f_sum += 1
for name in dirs:
d_sum += 1
return f_sum, d_sum
def file_stat(self):
'''获取具体文件及目录属性'''
for f in os.listdir(self.__path):
dir = os.path.join(self.__path, f)
# print(f)
os_stat = os.stat(dir)
# 日期(年/月/日)
file_date = time.strftime('%Y/%m/%d', time.localtime(os_stat.st_mtime))
# 时间(时分秒)
file_time = time.strftime('%H:%M', time.localtime(os_stat.st_mtime))
# 文件及目录大小
file_size = os_stat.st_size
# 文件名
file_name = f+'\t'
if os.path.isfile(dir):
file_stat = '<file>'
elif os.path.isdir(dir):
file_stat = '<dir>\t'
print(file_date,'\t',file_time,'\t',file_stat,'\t',file_size,'\t',file_name) f = file_total(base_dir)
f_stat = f.file_sum()
print(f.file_stat())
print('\t %s 个文件\n\t %s 个目录' % (f_stat[0], f_stat[1]))
练习1主要使用到了os模块,os.walk方法很好用。
练习2:
编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
#!_*_coding:utf-8_*_
# Author: hkey
import os, re
file_list = list()
# base_dir = input('enter your dir:')
find_str = input('enter your file str:')
for root, dirs, files in os.walk('.', topdown=False):
for name in files:
if re.search(find_str, name):
print(os.path.join(root, name))
练习2主要使用到re正则匹配,str类型通过find和index都无法实现判断。
[ Python - 8 ] 简单demo练习的更多相关文章
- 用 python实现简单EXCEL数据统计
		
任务: 用python时间简单的统计任务-统计男性和女性分别有多少人. 用到的物料:xlrd 它的作用-读取excel表数据 代码: import xlrd workbook = xlrd.open_ ...
 - [tornado]websocket 最简单demo
		
想法 前两天想看看django 长轮询或者是websocket的方案,发现都不太好使. tornado很适合做这个工作,于是找了些资料,参照了做了个最简单demo,以便备用. 具体的概念就不说了,to ...
 - Django实战(一)之简单Demo
		
菜鸟教程上Django安装可供参考: 参考链接: http://www.runoob.com/django/django-install.html 菜鸟教程上如果不行的话,下面博客网址可以供参考 Li ...
 - 在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 ...
 - 用python实现简单EXCEL数据统计的实例
		
用python实现简单EXCEL数据统计的实例 下面小编就为大家带来一篇用python实现简单EXCEL数据统计的实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 任 ...
 - 设计模式之单例模式的简单demo
		
/* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...
 - Spring的简单demo
		
---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...
 - Python  实现简单的 Web
		
简单的学了下Python, 然后用Python实现简单的Web. 因为正在学习计算机网络,所以通过编程来加强自己对于Http协议和Web服务器的理解,也理解下如何实现Web服务请求.响应.错误处理以及 ...
 - 使用Spring缓存的简单Demo
		
使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...
 
随机推荐
- [leetcode-655-Print Binary Tree]
			
Print a binary tree in an m*n 2D string array following these rules: The row number m should be equa ...
 - java中使用POI+excel 实现数据的批量导入和导出
			
java web中使用POI实现excel文件的导入和导出 文件导出 //导入excle表 public String exportXls() throws IOException{ //1.查询所有 ...
 - Redis学习笔记之基础篇
			
Redis是一款开源的日志型key-value数据库,目前主要用作缓存服务器使用. Redis官方并没有提供windows版本的服务器,不过微软官方开发了基于Windows的Redis服务器Micro ...
 - java8 增强的Iterator遍历集合元素
			
Iterator接口也是Java集合框架的成员,与Collection和Map两个系列的集合不一样的是Collection和Map系列主要用于充当容器的作用,而Iterator正如其名字一样是主要用于 ...
 - BZOJ4424/CF19E Fairy(dfs树+树上差分)
			
即删除一条边使图中不存在奇环.如果本身就是个二分图当然任意一条边都可以,先check一下.否则肯定要删除在所有奇环的交上的边. 考虑怎么找这些边.跑一遍dfs造出dfs树,找出返祖边构成的奇环.可以通 ...
 - hdu 3033 I love sneakers!(分组背包+每组至少选一个)
			
I love sneakers! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
 - BZOJ4567 [Scoi2016]背单词   【trie树 + 贪心】
			
题目链接 BZOJ4567 题解 题意真是鬼畜= = 意思就是说我们应先将一个串的所有后缀都插入之后再插入这个串,产生代价为其到上一个后缀的距离 我们翻转一下串,转化为前缀,就可以建\(trie\)树 ...
 - BZOJ2299 [HAOI2011]向量  【裴蜀定理】
			
题目链接 BZOJ2299 题解 题意就是给我们四个方向的向量\((a,b),(b,a),(-a,b),(b,-a)\),求能否凑出\((x,y)\) 显然我们就可以得到一对四元方程组,用裴蜀定理判断 ...
 - Android中代码设置RadioButton的高端技巧
			
不知道怎么起标题,就这样了. 目前主要讲两个方面内容: 代码方式 设置RadioButton的 android:button . android:background 等属性为 @null : 代码方 ...
 - 1、linux下mysql5.5.20安装过程报错汇总
			
1.Access denied for user 'root'@'localhost' (using password: YES) 这个提示是因为root帐户默认不开放远程访问权限,所以需要修改一下相 ...