9.6. 目录迭代的两种方式¶
9.6.1. 方式一¶
#!/usr/bin/env python
#-*- coding:utf8 -*-
import os
import os.path
def traverse(pathname):
for item in os.listdir(pathname):
fullitem = os.path.join(pathname,item)
print(fullitem)
if os.path.isdir(fullitem):
traverse(fullitem)
traverse("D:\GitHub")
9.6.2. 方式二¶
#!/usr/bin/env python
#-*- coding:utf8 -*-
import os
import os.path
def trav_walk(pathname):
'''
root:当前目录
dirs:当前目录下的子目录
files:目录下的所有文件
'''
for root,dirs,files in os.walk(pathname):
for file in files:
fname = os.path.abspath(os.path.join(root,file))
print(fname)
trav_walk("D:\GitHub")
9.6.3. 遍历文件下的所有目录¶
代码示例¶
#!/usr/bin/env python
#-*- coding:utf8 -*-
'''
os.walk()函数返回的是一个可以迭代的生成器,要处理遍历得到的结果,可以使用for语句来循环处理
os.walk(path)
第一项为:当前遍历的路径
第二项为:遍历目录中的子目录列表
第三项为:遍历目录中所有文件的列表
'''
import os
print(os.linesep) #平台下的行分割符
print(os.pathsep) #目录名分隔符
for i in os.walk('.\\'):
print(i)
9.6.4. 文件属性浏览¶
遍历path指定的目录,获取每个子目录的路径。
遍历子目录下所有文件,返回文件的属性列表。
分解属性列表,对属性列表进行格式化输出
#!/usr/bin/env python
# -*- coding:utf8 -*-
# auther; 18793
# Date:2019/7/20 14:56
# filename: 查看所有文件的属性.py
def ShowFileProperties(path):
"""
显示文件属性,包括路径、大小、创建日期、最后修改时间、最后访问时间
:param path:
:return:
"""
import os, time
for root, dirs, files in os.walk(path, True):
print("位置:" + root)
for filename in files:
state = os.stat(os.path.join(root, filename))
info = "文件名:" + filename + " "
info = info + "大小:" + ("%d" % state[-4]) + " "
t = time.strftime("%Y-%m-%d %X", time.localtime(state[-1]))
info = info + "创建时间:" + t + " "
t = time.strftime("%Y-%m-%d %X", time.localtime(state[-2]))
info = info + "修改时间:" + t + " "
t = time.strftime("%Y-%m-%d %X", time.localtime(state[-3]))
info = info + "最后访问时间:" + t + " "
print(info)
if __name__ == '__main__':
path = r"D:\GitHub\21_staduy_python\13.python文件操作\基本文件操作"
ShowFileProperties(path)
os.stat() 的参数必须是绝对路径。因此, 需要先调用os.path.join(root, filename) 连接文件的 路径和文件名。
输出结果
文件名:messages1.txt 大小:84 创建时间:2018-11-10 18:33:45 修改时间:2018-11-10 18:34:01 最后访问时间:2019-06-14 23:44:56
文件名:open函数.py 大小:3040 创建时间:2018-11-10 18:35:18 修改时间:2018-11-10 18:35:18 最后访问时间:2019-06-14 23:44:56
文件名:python逐行读取文件.py 大小:713 创建时间:2018-12-04 09:43:20 修改时间:2018-12-04 09:43:20 最后访问时间:2019-06-14 23:44:56
文件名:__init__.py 大小:45 创建时间:2018-12-04 09:43:03 修改时间:2018-12-04 09:43:03 最后访问时间:2019-06-14 23:44:56
文件名:写入文件内容.py 大小:429 创建时间:2018-11-10 18:41:11 修改时间:2018-11-10 18:41:11 最后访问时间:2019-06-14 23:44:56
文件名:打开文件使用with语句.py 大小:267 创建时间:2018-11-10 18:22:45 修改时间:2018-11-10 18:22:45 最后访问时间:2019-06-14 23:44:56
文件名:查看所有文件的属性.py 大小:1199 创建时间:2019-07-20 15:03:56 修改时间:2019-07-20 15:03:56 最后访问时间:2019-07-20 15:03:57
文件名:模拟进度条.py 大小:254 创建时间:2018-12-05 19:15:07 修改时间:2018-12-05 19:15:07 最后访问时间:2019-06-14 23:44:56
文件名:读取文件内容.py 大小:837 创建时间:2018-12-05 19:10:37 修改时间:2018-12-05 19:10:37 最后访问时间:2019-06-14 23:44:56