0
点赞
收藏
分享

微信扫一扫

Python入门之os.walk()方法

os.walk方法,主要用来遍历一个目录内各个子目录和子文件。


os.walk(top, topdown=True, onerror=None, followlinks=False)

可以得到一个三元tupple(dirpath, dirnames, filenames), 


第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。

dirpath 是一个string,代表目录的路径,

dirnames 是一个list,包含了dirpath下所有子目录的名字。

filenames 是一个list,包含了非目录文件的名字。

这些名字不包含路径信息,如果需要得到全路径,需要使用os.path.join(dirpath, name).


通过for循环自动完成递归枚举

例如:

F:\aaa 目录是这样的文件目录结构

F:\aaa

|--------1.txt

|--------2.txt

|--------3.txt

|--------4

         |-------5.txt

         |-------6.txt

         |-------7.txt


分别打印各个参数的实际值

#!/usr/bin/env python  
# 2.py
# use UTF-8
# Python 3.3.0

# os.walk()的使用
import os

# 枚举dirPath目录下的所有文件

def main():
#begin
fileDir = "F:" + os.sep + "aaa" # 查找F:\aaa 目录下
for root, dirs, files in os.walk(fileDir):
#begin
print(root)
print(dirs)
print(files)
#end
os.system("pause")
#end

if __name__ == '__main__':
#begin
main()
#end


# 输出
# F:\aaa
# ['4']
# ['1.txt', '2.txt', '3.txt']
# F:\aaa\4
# []
# ['5.txt', '6.txt', '7.txt']


你也可以这样,用元组a,通过for循环即可完成目录的递归.

#!/usr/bin/env python  
# 3.py
# use UTF-8
# Python 3.3.0

# os.walk()的使用
import os

# 枚举dirPath目录下的所有文件

def main():
#begin
fileDir = "F:" + os.sep + "aaa" # 查找F:\aaa 目录下
for a in os.walk(fileDir):
#begin
print(a[0])
print(a[1])
print(a[2])
#end
os.system("pause")
#end

if __name__ == '__main__':
#begin
main()
#end


# 输出
# F:\aaa
# ['4']
# ['1.txt', '2.txt', '3.txt']
# F:\aaa\4
# []
# ['5.txt', '6.txt', '7.txt']


你还可以这样,先打印目录,再打印各个文件

#!/usr/bin/env python  
# 2.py
# use UTF-8
# Python 3.3.0

# os.walk()的使用
import os

# 枚举dirPath目录下的所有文件

def main():
#begin
fileDir = "F:" + os.sep + "aaa" # 查找F:\aaa 目录下
for root, dirs, files in os.walk(fileDir):
#begin
for dir in dirs:
#begin
print(os.path.join(root, dir))
#end
for file in files:
#begin
print(os.path.join(root, file))
#end
#end
os.system("pause")
#end

if __name__ == '__main__':
#begin
main()
#end


# 输出
# F:\aaa\4
# F:\aaa\1.txt
# F:\aaa\2.txt
# F:\aaa\3.txt
# F:\aaa\4\5.txt
# F:\aaa\4\6.txt
# F:\aaa\4\7.txt



​​参考​​




举报

相关推荐

0 条评论