python全盘搜索文件_遍历、搜索文件以及查询文件信息 Python自动化办公

遍历文件夹

使用os.walk(指定的绝对路径或相对路径),可以把文件夹里的文件都找出来

import os

for dirpath,dirnames,files in os.walk('./'):

print(f'发现文件夹:{dirpath}')

print(files)

# dirpath:文件夹路径

# dirnames:dirpath这个文件夹下的子文件夹列表

# files:是dirpath这个文件夹里的文件列表

搜索、匹配文件名称

利用字符串内置的方法,字符串A.startswith(字符串B):判断字符串A是否以字符串B开头,同理endswith()是判断字符串A是否以字符串B结尾

也可以使用glob模块,现在输出当前文件夹下的任意py文件

import glob

print(glob.glob('*.py')) # 当前目录下的任意py文件

print(glob.glob('eyujun*.py')) # 当前目录下已eyujun开头的py文件

星号(*)代表匹配所有,问号(?)代表任何单个字符,[seq]匹配seq中的任何字符,[!seq]匹配任何不在seq中的字符,

用**表示任意层文件或文件夹,recursive=True会不断进入文件夹内,也就是递归的寻找文件夹这里自己尝试效果

匹配文件名

使用fnmatch模块可以用来匹配文件名

import fnmatch

print(fnmatch.fnmatch('asyn_cio.py','as*.py'))

查询文件信息

os.scandir()返回的文件都可以查询信息:

import os

for file in os.scandir(): # 默认是当前路径下的文件

print(file.stat())

# os.stat_result(st_mode=33206, st_ino=0, st_dev=0, st_nlink=0, st_uid=0, st_gid=0, st_size=1509506, st_atime=1585544160, st_mtime=1589287741, st_ctime=1585544160)

文件信息属性:

st_size:文件的体积大小(单位:bytes),除以1024就是KB

st_atime:文件的最近访问时间

st_mtime:文件的最近修改时间

st_ctime:Windows下表示创建时间

st_birthtime:只在Mac、Linux下可用,表示创建时间

可以看到st_ctime返回的是1585544160,这种时间就做Unix时间戳,可以利用Python转换为正常时间:

import time

print(time.ctime(1585544160))

# Mon Mar 30 12:56:00 2020

两者结合使用:

import time

import os

for file in os.scandir(): # 默认是当前路径下的文件

print(file.name,time.ctime(file.stat().st_mtime))

# 2.png Tue May 12 20:49:01 2020

也可以使用datetime模块:

import datetime

that_time=datetime.datetime.fromtimestamp(1585544160)

print(that_time)

print(that_time.hour,that_time.minute,that_time.second)

# 2020-03-30 12:56:00

# 12 56 0

单独查询指定文件信息

os.stat()可以传入指定文件,来查看指定文件的信息:

import os

print(os.stat('2.png'))

未经允许不得转载:作者:鳄鱼君,

转载或复制请以 超链接形式 并注明出处 鳄鱼君。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值