廖雪峰 python 操作文件和目录

1.利用os模块编写一个能实现dir -l输出的程序。
储备知识:
os模块:

  • os.listdir(path) 列出了path路径下的所有文件和目录
    os.path.isfile(name) 判定name文件存不存在
    os.path.isdir(name)判定name是不是一个目录
    os.path.getsize(name) 获得name文件的大小
    os.path.getmtime(name) 获得name文件最后修改的时间(时间戳)

time模块:

  • time模块中时间表现的格式主要有三种:

a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量

b、struct_time时间元组,共有九个元素组,将年,月,日,小时,分钟,秒,一周第几日,一年第几日,夏令时等变量组合在一起。

c、format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。


代码:

import os,time
path = r'C:\Users\dell\work'
filenum,filesize,dirnum = 0,0,0
for name in os.listdir(path):

#listdir(dir)返回dir路径下所有的文件和目录

    if os.path.isfile(name):
        print('%s\t\t%d\t%s'%(time.strftime('%Y/%m/%d%H:%M',time.localtime(os.path.getmtime(name))),os.path.getsize(name),name))
        #\t是制表符 使得对齐,一个\t,8个位置
        #os.path.getmtime(name) 获得name文件的最后修改的时间(时间戳)
        #time.localtime() 将Timestamp对象转换为struct_time对象
        #strftime()将struct_time对象转换为格式化时间 2009/01/07 23:54
        filenum= filenum+1
        filesize += os.path.getsize(name)
        
    if os.path.isdir(name):
        print('%s\t<DIR>\t\t%s'%(time.strftime('%Y/%m/%d %H:%M',time.localtime(os.path.getmtime(name))),name))
        dirnum+=1
    print('\t\t%d个文件\t\t%d个字节'%(filenum,filesize))
    print('\t\t%d个目录'%dirnum)

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

import os
def search(text,path ='.'):
    for name in os.listdir():
        current = os.path.join(path,name)#递归得以实现的关键
        if os.path.isdir(name):
            search(text,current)
        elif name.find(text)!= -1:
            print(current)

if __name__ == '__main__':
    text = input('Please input')
    search(text)
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值