[ Python - 8 ] 简单demo练习
2024-09-03 15:18:29
练习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都无法实现判断。
最新文章
- 用单例模式封装常用方法 utils class v1.0
- 20.python笔记之装饰器
- 在client类中设置访问属性 address,business和individua
- eclipse 提交作业到JobTracker Hadoop的数据类型要求必须实现Writable接口
- OpenCV CommandLineParser 的用法
- struts2-2.3.4.1的struts-default.xml源码
- 剑指OFFER之丑数(九度OJ1214)
- Jquery OR Js 实现图片预览
- 模板方法模式(TemplateMethod)
- List去重
- Struts2 02--通配符
- Unity3d Mecanim动画系统Animator学习笔记
- Unable to execute &#39;doFinal&#39; with cipher instance [javax.crypto.Cipher@4e025e0a]
- Mysql索引使用解析
- 异步、非阻塞和IO多路复用总结
- 找到 Confluence 6 的日志和配置文件
- 2.3.7synchronized代码块有volatile同步的功能
- 2018年12月7日 字符串格式化2 format与函数1
- response和request的setCharacterEncoding区别
- Oracle 10g AND Oracle 11g手工建库案例--Oracle 10g