搜索文件及查询文件信息

搜索、匹配文件名称

利用字符串内置的方法

语法:

.startswith().endswith()
字符串A.startswith(字符串B) 字符串A是否以字符串B开头
字符串A.endswith(字符串B) 字符串B是否以字符串B结尾
print('OsOperation.py'.startswith('Os'))
print('OsOperation.py'.endswith('.py'))

'''
输出结果:
True
True
'''
glob模块

glob 模块通常与正则相结合使用

内容含义
*匹配所有
匹配任意单个字符
[seq]匹配seq中的任意字符
[!seq]匹配非seq中的任意字符

匹配当前py程序所在文件夹下的文件

import glob

# 匹配py文件

print(glob.glob('*.py'))
# 注意,该种方式glob模块只匹配当前py程序所在文件夹下的文件

# 输出结果
# ['globdemo.py']

匹配当前py程序所在文件夹下与子文件下的文件

# 匹配当前py程序所在文件夹下的所有的文件夹下的文件  recursive=True表示递归
print(glob.glob('**/*.py',recursive=True))

# 输出结果
# ['globdemo.py', 'demo/demo.py']
fnmatch模块

fnmatch模块与正则联用,用来匹配字符串是否符合规则

import fnmatch

print(fnmatch.fnmatch('fnmatchDemo.py','*.py'))

# 输出结果:True

查询文件信息

单独查询指定文件信息 os.stat(file)
  • 文件大小:size (单位:bytes)

  • 访问时间:atime 每天第一次查看文件内容时会刷新

  • 更改时间:mtime 更改文件内容时会刷新

  • 改动时间:ctime 更改文件属性时会刷新

这里时间的展示都以时间戳的格式展示,对于时间戳,可以使用time模块转化成我们想要的时间格式

import os
import time

print(os.stat('OsOperation7.py'))

'''
输出结果:
os.stat_result(st_mode=33279, st_ino=282, st_dev=2069, st_nlink=1, 
st_uid=1000, st_gid=1000, st_size=151,
st_atime=1596532399, st_mtime=1596532399, st_ctime=1596532399)
'''

print('*' * 50)

# 将时间戳转化成我们想要的时间格式
the_mtime = os.stat('OsOperation7.py').st_mtime
print(the_mtime)
print(time.ctime(the_mtime))

'''
输出结果:
1596532699.9790227
Tue Aug  4 17:18:19 2020
'''
查询当前文件夹下所有文件信息 os.scandir
import os
import time

for file in os.scandir():
    print(file.name,file.stat())

    print('*'*50)

    theTime=file.stat().st_mtime
    print(theTime)
    print(time.ctime(theTime))

    print('*' * 100)

'''
demo os.stat_result(st_mode=16895, st_ino=386, st_dev=2069, st_nlink=1, 
st_uid=1000, st_gid=1000, 
st_size=152, st_atime=1596535271, st_mtime=1596535222, st_ctime=1596535222)
**************************************************
1596535222.2981277
Tue Aug  4 18:00:22 2020
******************************************************************


OsOperation1.py os.stat_result(st_mode=33279, st_ino=144, st_dev=2069, 
st_nlink=1, st_uid=1000, st_gid=1000, 
st_size=233, st_atime=1596119554, st_mtime=1595084670, st_ctime=1596506596)
**************************************************
1595084670.2155957
Sat Jul 18 23:04:30 2020
*****************************************************************


OsOperation2.py os.stat_result(st_mode=33279, st_ino=146, st_dev=2069,
 st_nlink=1, st_uid=1000, st_gid=1000,
 st_size=908, st_atime=1596200373, st_mtime=1595084670, st_ctime=1595084670)
**************************************************
1595084670.7634528
Sat Jul 18 23:04:30 2020
****************************************************************

'''
循环查询当前文件夹下所有文件信息
import os
import time

filepath = '/media/bobo/648CEBCD8CEB9836/Python/自动化办公'


for dirpath,dirnames,files in os.walk(filepath):
    print(f'发现文件夹{dirpath}')
    print(f'该文件夹下的文件夹有:{dirnames}',f'文件有{files}')
    for fileInfo in os.scandir(dirpath):
        print(fileInfo.name,f'大小为:{fileInfo.stat().st_size}',
        f'创建时间为:{time.ctime(fileInfo.stat().st_ctime)}')
    print('*'*60)

'''
输出结果:

发现文件夹/media/bobo/648CEBCD8CEB9836/Python/自动化办公
该文件夹下的文件夹有:['fnmatch模块', 'glob模块', 'os模块'] 文件有['strWith.py']
fnmatch模块 大小为:160 创建时间为:Tue Aug  4 16:24:21 2020
glob模块 大小为:472 创建时间为:Tue Aug  4 16:11:32 2020
os模块 大小为:4096 创建时间为:Tue Aug  4 19:11:09 2020
strWith.py 大小为:388 创建时间为:Tue Aug  4 16:28:50 2020
************************************************************
发现文件夹/media/bobo/648CEBCD8CEB9836/Python/自动化办公/fnmatch模块
该文件夹下的文件夹有:[] 文件有['fnmatchDemo.py']
fnmatchDemo.py 大小为:178 创建时间为:Tue Aug  4 16:24:21 2020
************************************************************
发现文件夹/media/bobo/648CEBCD8CEB9836/Python/自动化办公/glob模块
该文件夹下的文件夹有:['demo'] 文件有['globdemo.py']
demo 大小为:144 创建时间为:Tue Aug  4 16:08:17 2020
globdemo.py 大小为:528 创建时间为:Tue Aug  4 16:11:32 2020
************************************************************
发现文件夹/media/bobo/648CEBCD8CEB9836/Python/自动化办公/glob模块/demo
该文件夹下的文件夹有:[] 文件有['demo.py']
demo.py 大小为:94 创建时间为:Tue Aug  4 16:08:17 2020
************************************************************
发现文件夹/media/bobo/648CEBCD8CEB9836/Python/自动化办公/os模块
该文件夹下的文件夹有:['demo'] 文件有['OsOperation1.py', 'OsOperation2.py', 
'OsOperation3.py', 'OsOperation4.py', 'OsOperation5.py', 
'OsOperation6.py', 'OsOperation7.py', 'OsOperation8.py', 'OsOperation9.py']
demo 大小为:152 创建时间为:Tue Aug  4 18:00:22 2020
OsOperation1.py 大小为:233 创建时间为:Tue Aug  4 10:03:16 2020
OsOperation2.py 大小为:908 创建时间为:Sat Jul 18 23:04:30 2020
OsOperation3.py 大小为:498 创建时间为:Tue Aug  4 10:04:06 2020
OsOperation4.py 大小为:942 创建时间为:Tue Aug  4 10:04:06 2020
OsOperation5.py 大小为:492 创建时间为:Tue Aug  4 10:04:06 2020
OsOperation6.py 大小为:1228 创建时间为:Tue Aug  4 10:31:55 2020
OsOperation7.py 大小为:771 创建时间为:Tue Aug  4 18:05:33 2020
OsOperation8.py 大小为:1525 创建时间为:Tue Aug  4 18:05:32 2020
OsOperation9.py 大小为:540 创建时间为:Tue Aug  4 19:11:09 2020
************************************************************
发现文件夹/media/bobo/648CEBCD8CEB9836/Python/自动化办公/os模块/demo
该文件夹下的文件夹有:[] 文件有['demo.txt']
demo.txt 大小为:4129 创建时间为:Tue Aug  4 18:00:22 2020
************************************************************
'''

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值