os.walk() 很强大

在代码的时候 如果涉及到 要遍历文件夹里的文件
之前我用的是 os.listdir()
最近发现了强大的 os.walk()
两者的区别就在于
os.listdir () 会返回 该路径里包含的一层文件和文件夹
举例子 如果 a文件夹里有 b c d三个文件夹 还有 e f 两个文件
那么listdir就会返回 bcdef bcd文件夹里面有什么不会得知。

os.walk()会得到 该文件下所有的文件夹 以及里面的文件
无论套了多少层文件夹 都会给你显示出来
dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)

import os


root = "/home/xx/xx/a"     #路径 自己复制自己电脑的路径

for root, dirs, files in os.walk(root):
	for name in files:
    	print(os.path.join(root, name))
    for name in dirs:
        print(os.path.join(root, name))

用语句获取当前地址,不使用绝对地址 使得代码的可移植性更强。

in_dir = os.getcwd()#当前目录`在这里插入代码片`

另外在存储时候,output的文件夹

if not os.path.exists(out_dir): os.mkdir(out_dir) 

用上这个语句也可以增加 灵活性,如果没有这个地址就创建一个
但是mkdir一次只能创建一层文件夹 不可以一次创作多层
makedirs 就可以创建多级!(毛老师牛逼 小声)
记住

你可能感兴趣的:(python)