OS模块是python中用来对目录操作的一个模块。
基本函数如下:
os.mkdir():创建一个目录;os.makedirs():创建多层目录。
os.rmdir():删除一个目录;os.removedirs():删除多层目录。
os.listdir():列出目录下的目录及文件。
os.getcwd():获取当前绝对路径。
os.chdir():改变当前路径。
os.walk():遍历给定路径下的目录和文件。
基本使用如下:
>>> import os >>> os.mkdir('text') >>> os.makedirs('a/b/c/d') >>> os.listdir('.') ['a', 'text', 'zz.py', '题目'] >>> os.rmdir('text') >>> os.removedirs('a/b/c/d') >>> os.listdir('.') ['zz.py', '题目'] >>> os.listdir('c:/') ['$Recycle.Bin', 'Documents and Settings', 'hiberfil.sys', 'Intel', 'MSOCache', 'PerfLogs', 'Program Files', 'Program Files (x86)', 'ProgramData', 'Recovery', 'swapfile.sys', 'System Volume Information', 'Users', 'vnc', 'vnc.zip', 'Windows'] >>> os.getcwd() 'E:\1.个人网盘云端\2.学习成长\4.python\Demo' >>> os.chdir('c:/') >>> os.listdir('.') ['$Recycle.Bin', 'Documents and Settings', 'hiberfil.sys', 'Intel', 'MSOCache', 'PerfLogs', 'Program Files', 'Program Files (x86)', 'ProgramData', 'Recovery', 'swapfile.sys', 'System Volume Information', 'Users', 'vnc', 'vnc.zip', 'Windows'] >>> os.chdir('E:\1.个人网盘云端\2.学习成长\4.python\Demo') >>> os.listdir('.') ['zz.py', '题目'] >>>
两个小例子:遍历目录下的文件。
#!/usr/bin/python # -*- coding: utf-8 -*- import os def dirList(path): filelist = os.listdir(path) for filename in filelist: fpath = os.path.join(path,filename) if os.path.isdir(fpath): dirList(fpath) print(fpath) dirList('E:\1.个人网盘云端\2.学习成长\4.python\Demo\textdir')
使用os.walk()遍历目录下的目录和文件。
#!/usr/bin/python # -*- coding: utf-8 -*- import os #Os.Walk()函数,遍历给定路径下的目录和文件 dirt = os.walk('E:\1.个人网盘云端\2.学习成长\4.python\Demo\textdir') #返回一个元组,([路径][目录][文件]) for path,dirlist,filelist in dirt: for filename in filelist: print(os.path.join(path,filename))
os.walk模块返回的是一个元组,里面有3个列表,分别存放绝对路径、路径下的目录、路径下的文件。
不过不能直接查看,它是一个walk的对象,需要遍历才能读取数据。
测试:
>>> import os >>> dirt = os.walk('E:\1.个人网盘云端\2.学习成长\4.python\Demo\textdir') >>> dirt <generator object walk at 0x04033DF0> >>> for path,dirlist,filelist in dirt: print(path,dirlist,filelist) E:1.个人网盘云端2.学习成长4.pythonDemo extdir ['file1', 'file2', 'file3', 'file4', 'file5', 'timu'] [] E:1.个人网盘云端2.学习成长4.pythonDemo extdirfile1 [] ['文件1.txt', '文件2.txt'] E:1.个人网盘云端2.学习成长4.pythonDemo extdirfile2 [] ['文件3.txt'] E:1.个人网盘云端2.学习成长4.pythonDemo extdirfile3 [] [] E:1.个人网盘云端2.学习成长4.pythonDemo extdirfile4 [] [] E:1.个人网盘云端2.学习成长4.pythonDemo extdirfile5 [] []
os.walk()用的最多的应该就是里面的filelist,里面包含了所有文件名称。
这里os.path.join(path,filename)的意思是将path和filename链接起来。下去试一试就明白了。
读书和健身总有一个在路上