遍历文件夹
使用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'))
未经允许不得转载:作者:鳄鱼君,
转载或复制请以 超链接形式 并注明出处 鳄鱼君。