4.2os.walk()os.chdir()的作用
os.walk()
概述
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。
简单来说,os.walk()是深度遍历子文件和文件夹的一种方式
与os.listdir()的差别
通常当我们看到遍历文件和文件夹的时候,第一个想到的就是os.listdir()使用方法如下
import os
print(os.listdir(os.getcwd()))
运行结果是以列表的形式
['homeWork1.py', 'homeWork2.1.py', 'homeWork2.2.py', 'homeWork2.3.py', 'homeWork2.4.py', 'homeWork3..py', 'homeWork4.1.py', 'homeWork4.2.py', 'homeWork5.1.py', 'homeWork5.2.py', 'homeWork6.1.py', 'test']
然而,从下图我们看到os.listdir的局限性
test文件下的test1和test2并没有被遍历
很多时候我们需要将文件夹下的所有文件都找出来,此时我们就需要os.walk()
os.walk()的使用
import os
image_path = os.getcwd()
for i in os.walk(image_path):
print(i)
运行结果
('E:\\pycharm\\千锋直播\\homeWork', ['test'], ['homeWork1.py', 'homeWork2.1.py', 'homeWork2.2.py', 'homeWork2.3.py', 'homeWork2.4.py', 'homeWork3..py', 'homeWork4.1.py', 'homeWork4.2.py', 'homeWork5.1.py', 'homeWork5.2.py', 'homeWork6.1.py'])
('E:\\pycharm\\千锋直播\\homeWork\\test', ['test1', 'test2'], [])
('E:\\pycharm\\千锋直播\\homeWork\\test\\test1', [], ['test.txt'])
('E:\\pycharm\\千锋直播\\homeWork\\test\\test2', [], ['test.py'])
可以看到os.walk()以元组为单位区分每一层的,每一层又分成三个部分
根目录路径、本目录中文件夹名字、本目录中文件名字。
这样我们就可以深层遍历文件夹了
os.chdir()
概述
os.chdir() 方法用于改变当前工作目录到指定的路径。
os.chdir()的使用
import os
path = r"E:\pycharm\千锋直播\homeWork\test\test1"
# 查看当前工作目录
retval = os.getcwd()
print("当前工作目录为 %s" % retval)
# 修改当前工作目录
os.chdir( path )
# 查看修改后的工作目录
retval = os.getcwd()
print("目录修改成功 %s" % retval)
运行结果
当前工作目录为 E:\pycharm\千锋直播\homeWork\test\test2
目录修改成功 E:\pycharm\千锋直播\homeWork\test\test1
我们看到os.chdir()改变了工作目录的路径,但文件位置并没有改变,只是变换了通道