欢迎来到我的博客!

Python os模块:利用os模块实现windows CMD中的dir命令

Python笔记 Aaron 1 年,8 月 2103 8评论

在windows命令行中,如果我们想查看当前目录下的子文件、目录,可以使用dir命令

在Python中如果想要操作文件和目录,则需要用到Python的内置模块os,下面我们就用os模块在python中实现dir功能

import os
from datetime import datetime

# 利用os模块实现windows命令行中的 'dir' 命令
# 输出 文件的 最后修改时间,文件类型,size,name,

pwd = os.path.abspath('.') #获取当前目录的绝对路径
print('%s 的目录' % pwd)
print('%s%10s%9s %s' % ('最后修改时间', '类型', 'size', '文件名'))

for f in os.listdir(pwd):
    f_size = os.path.getsize(f) #文件大小
    modified_time = datetime.fromtimestamp(os.path.getmtime(f)).strftime('%Y/%m/%d %H:%M')
    f_type = '<DIR>' if os.path.isdir(f) else ''  #如果是子目录,类型是<DIR>
    print('%s%9s%9d %s' %(modified_time, f_type, f_size, f))

结果如下:

C:\Users\zry71\PycharmProjects\Python笔记 的目录
最后修改时间        类型     size 文件名
2017/05/31 02:02    <DIR>     4096 .idea
2017/05/28 12:50               370 decorator.py
2017/05/31 02:10              1619 IO_learn.py
2017/05/28 17:53               731 learn_class.py
2017/05/28 15:37               143 module.py
2017/05/24 14:26            322930 test.png
2017/05/28 15:37              2915 thumb.jpg
2017/05/26 23:32               148 回数.py
2017/05/29 18:22              1371 斐波那契.py
2017/05/26 17:37               249 杨辉三角.py
2017/05/26 18:27               447 素数.py
  • os.path.getmtime(filename) 获取文件的修改时间,返回时间戳,因此需要用到Python内置的datetime模块来处理
  • os.path.isdir(filename) 判断是否子目录,同理os.path.isfile(filename)用了判断是否是文件,如果想要获取一个子文件的扩展名,则用os.path.splitext(filename), example如下:
filename = r'C:\Users\zry71\PycharmProjects\Python笔记\IO_learn.py'
f_split = os.path.splitext(filename)
print(f_split)  # ('C:\\Users\\zry71\\PycharmProjects\\Python笔记\\IO_learn', '.py')
print('文件扩展名是: %s' % f_split[1])  # 文件扩展名是: .py
  • datetime.fromtimestamp(timestamp) 根据给定的时间戳,返回一个datetime对象
  • datetime.strftime(format) 自定义格式化字符串

评论 3人参与 | 8条评论

文章目录