Python 搜索、遍历文件、文件夹和查看文件信息

您所在的位置:网站首页 python的查找 Python 搜索、遍历文件、文件夹和查看文件信息

Python 搜索、遍历文件、文件夹和查看文件信息

2023-03-27 03:16| 来源: 网络整理| 查看: 265

您当前位置:网站首页 >> Python学习 >> Python 搜索、遍历文件、文件夹和查看文件信息 Python 搜索、遍历文件、文件夹和查看文件信息 iCoA首席特工 逍遥峡谷 发布:2019-12-22 更新:2020-01-07 浏览次 有0条评论 内容简介

相关关键词:Python   os   fnmatch   time   datetime   glob  

本文链接:https://www.icoa.cn/a/879.html

本站文章如非注明皆为原创,未经允许禁止转载。如有问题可以给我留言或发邮件。

之前学了Python 使用os模块显示某个目录下的文件和文件夹,而我们想要显示某目录下面所有的文件(包含子文件夹以及子文件夹的子文件夹下面的文件),或者读取某文件的文件信息,或者搜索相关文件等。后面就可以用Python 读取和写入文件了。

更多Python相关文章点击:Python学习日志目录

首先要用到os.walk()函数。

os.walk() 遍历某目录下所有子文件夹和文件

os.walk() 函数有 dirpath/dirnames/files 三个属性

# 使用前首先要引入os模块,一个程序文件引入一次就可以了,下面默认都已引入os模块 import os # 遍历当前目录下所有文件和子文件夹文件 for dirpath,dirnames,files in os.walk('./'):     print(f'发现文件夹:{dirpath}')     print(files) ''' 输出结果 发现文件夹:./ ['demo.png', 'game.py', 'game.single.py', 'game.zip', 'qa.py', 'test.py', 'view.py'] 发现文件夹:./WeChat ['test_bot.py', 'WechatBot.py'] 发现文件夹:./子文件夹 ['子文件夹的文件.txt'] 发现文件夹:./子文件夹\孙文件夹 ['孙文件夹文件.txt'] 发现文件夹:./子文件夹\孙文件夹\重孙文件夹 ['这是一个文件.txt'] '''

os.scandir() 返回的文件可以使用.stat()都可以查看文件信息

for file in os.scandir():     print(file.name,file.stat()) ''' 运行结果 demo.png os.stat_result(st_mode=33206, st_ino=0, st_dev=0, st_nlink=0, st_uid=0, st_gid=0, st_size=31502, st_atime=1576983566, st_mtime=1576858244, st_ctime=1576858244) game.py os.stat_result(st_mode=33206, st_ino=0, st_dev=0, st_nlink=0, st_uid=0, st_gid=0, st_size=7919, st_atime=1576919981, st_mtime=1576891665, st_ctime=1576824155) '''

os.stat() 可以查看指定文件的文件信息

print(os.stat('WeChat/WechatBot.py')) # 路径可以使用相对路径也可以使用绝对路径,推荐使用相对路径

其中文件信息属性代表的是:

st_size: 文件大小(单位是B),除以1024就是KB

st_atime: 文件最近访问时间

st_mtime: 文件最近修改时间

st_ctime: Windows系统下表示文件创建时间

st_birthtime: Mac/Linux系统下文件创建时间

# 文件大小 for file in os.scandir():     print(file.name,file.stat().st_size / 1024,'KB') ''' 运行结果 demo.png 30.763671875 KB game.py 7.7333984375 KB ''' # 创建时间(Windows 下) for file in os.scandir():     print(file.name,file.stat().st_ctime) ''' 运行结果 demo.png 1576858244.9686193 game.py 1576824155.55 ''' # 后面1576858244.9686193是时间戳,需要通过time模块转换成标准的时间格式 # 引入time模块 import time print(time.ctime(1576858244.9686193)) ''' 输出结果 Sat Dec 21 00:10:44 2019 ''' # 结合os模块和time模块,这里默认已引入相关模块 for file in os.scandir():     print(file.name,time.ctime(file.stat().st_ctime)) ''' 输出结果 demo.png Sat Dec 21 00:10:44 2019 game.py Fri Dec 20 14:42:35 2019 ''' # 同样可以使用datetime模块来转换成更易读的时间日期格式 # 引入datetime模块 import datetime t = datetime.datetime.fromtimestamp(1576824155.55) yr = t.year mo = t.month da = t.day h = t.hour m = t.minute s = t.second print(t) print(f'{h}点{m}分{s}秒') print(f'{yr}年{mo}月{da}日 {h}点{m}分{s}秒') ''' 运行结果 2019-12-20 14:42:35.550000 14点42分35秒 2019年12月20日 14点42分35秒 '''

搜索某个关键词的文件和文件夹

搜索是否包含某个关键词可以用到字符串的两个内置方法

.startswith() 开始包含

.endswith() 结尾包含

# 用法 字符串A.startswith(字符串B) / 字符串A.endswith(字符串B) a = 'demo.png' b = 'de' print(a.startswith(b)) # 运行结果 True a = 'game.py' c = '.py' print(a.startswith(c)) # 运行结果 True

glob模块

可以使用glob.glob()搜索当前目录下相关文件

# 引入glob模块 import glob # 搜索本目录下所有.py文件 print(glob.glob('*.py')) ''' 运行结果 ['game.py', 'game.single.py', 'test.py'] ''' # 搜索开头是game的.py文件 print(glob.glob('game*.py')) ''' 运行结果 ['game.py', 'game.single.py'] ''' '''搜索的时候,除了可以用*,还可以下面的符号: * 匹配所有字符 ? 匹配单个字符 [seq] 匹配序列中的任何字符 [!seq] 匹配不在序列中的任何字符''' print(glob.glob('demo[0-9].png')) ''' 运行结果 ['demo1.png', 'demo2.png'] ''' print(glob.glob('test[1,3].py')) ''' 运行结果 ['test1.py', 'test3.py'] ''' # 搜索子文件夹和子文件下面的所有文件 print(glob.glob('**/*.py',recursive=True)) # ** 代表任意层文件和文件夹 # recursive=True 不断进入文件夹下面 ''' 运行结果 ['game.py', 'game.single.py', 'test.py', 'WeChat\\test_bot.py', 'WeChat\\WechatBot.py', '子文件夹\\qa.py', '子文件夹\\view.py', '子文件夹\\孙文件夹\\test1.py', '子文件夹\\孙文件夹\\test2.py', '子文件夹\\孙文件夹\\test3.py'] '''

fnmatch模块

fnmatch.fnmatch() 可以用来判断文件名是否匹配

# 首先引入fnmatch模块 import fnmatch # 判断 game.py 是否匹配 g*.py print(fnmatch.fnmatch('game.py','g*.py')) # 运行结果 True # 延伸用法,可以把文件名取出,然后跟规则进行匹配判断

本文链接:https://www.icoa.cn/a/879.html 关键词: Python   os   fnmatch   time   datetime   glob  

如果您愿意支持本站,欢迎点击打赏哦~

下一篇:Python 写入和读取文件

上一篇:Python 字符串和字符串运算

- 相关文章 -

Python 基础知识入门演示 - 2017-12-31

Python 数字与数字型运算 - 2020-09-08

Python 基础知识之数据类型 - 2020-09-07

Python 学习中非常好用的编辑器 Sublime Text 3 - 2020-09-07

Python 基础知识之变量 - 2020-09-03

Python 详细安装步骤图解 - 2020-09-01

Python 数据分析模块 Pandas 之 DataFrame 数据 - 2020-02-09

Python 数据分析模块 Pandas 之 Series 数据 - 2020-02-05

- 文章评论 -

- 最新评论[0条评论] -

[>>>点击查看更多评论]


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3