Python 搜索、遍历文件、文件夹和查看文件信息 |
您所在的位置:网站首页 › python的查找 › Python 搜索、遍历文件、文件夹和查看文件信息 |
您当前位置:网站首页 >>
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)) # 运行结果 Trueglob模块 可以使用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 |