os模块
1、rename、remove、rmdir,mkdir、makedirs、removedirs、listdir、path.isdir、path.isfile、path.exists
1)os.remove:
os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。
在Unix, Windows中有效
语法:os.remove(path); 参数:path -- 要移除的文件路径 ;返回值:该方法没有返回值
os.rmdir:删除文件夹
os.rmdir(path) #
path -- 要移除的文件夹路径,要求空目录
下面代码:删除一个文件夹,无论里面是否有文件或文件夹。
import shutil shutil.rmtree(r"G:\新建文件夹") # 删除“G:\新建文件夹”整个文件夹
2)os.removedirs()
os.removedirs() 方法用于递归删除目录。像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般意味着你文件夹不为空)。
语法:os.removedirs(path),参数:path -- 要移除的目录路径,返回值:该方法没有返回值
1 import os 2 # os.rename('home2','homework2.py') #重命名 3 # os.remove('pass.txt')#删除文件,用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError 4 # os.mkdir('文件夹1/子文件') #创建文件夹,如果父目录不存在,不会自动创建,会报错 5 # os.makedirs('中国/北京/海淀/西二旗') #如果父目录不存在,会自动创建。 6 # os.removedirs('文件夹1/子文件') #只能删除空文件夹 7 # print(os.listdir('e:\\')) #显示该目录下的所有文件和文件夹,如果listdir连不传值,则默认当前路径下的所有文件和文件夹 8 # print(os.path.isdir('中国')) #判断是否是文件夹,传绝对路径或相对路径都可以。如果传入的文件或文件夹不存在,也会返回False 9 # print(os.path.isfile('sdf'))#判断是否是文件,传绝对路径或相对路径都可以。如果传入的文件或文件夹不存在,也会返回False 10 # print(os.path.exists('中国')) #判断文件或者文件夹是否存在
os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。
它不包括 . 和 .. 即使它在文件夹中。
只支持在 Unix, Windows 下使用。
2、os.walk
walk递归地对目录及子目录处理,每次返回的三项分别为:当前递归的目录,当前递归的目录下的所有子目录,当前递归的目录下的所有文件。
http://www.runoob.com/python/os-walk.html
概述
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。
在Unix,Windows中有效。
语法
walk()方法语法格式如下:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
参数
-
top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。
- root 所指的是当前正在遍历的这个文件夹的本身的地址
- dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
- files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
-
topdown --可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。如果 topdown 参数为 False,walk 会遍历top文件夹,与top 文件夹中每一个子目录。
-
onerror -- 可选, 需要一个 callable 对象,当 walk 需要异常时,会调用。
-
followlinks -- 可选, 如果为 True,则会遍历目录下的快捷方式(linux 下是 symbolic link)实际所指的目录(默认关闭)。
返回值
该方法没有返回值。
- 实例1:
1 res = os.walk(r'中国') #这个可以传相对路径,也可传绝对路径,打印显示的时候分别会显示相对路径或绝对路径 2 for c,d,f in res: #cur_path,dirs,files 3 print('当前目录:',c) 4 print('当前目录下文件夹:',d) 5 print('当前目录下文件:',f) 6 print('=================')#分隔一下,看的清楚些
实例2:
1 import os 2 for root, dirs, files in os.walk("."): 3 for name in files: 4 print(os.path.join(root, name)) 5 for name in dirs: 6 print(os.path.join(root, name))
统计e盘下有多少个python文件
1 res=os.walk(r'e:\\') 2 count=0 3 for c,d,f in res: 4 for i in f: 5 if i.endswith('.py'): 6 # print(i) 7 count += 1 8 print(count)
写个查找文件的函数:
1 import os 2 def find_file(path,keyword): #那个路径,以及查找什么关键字 3 res = os.walk(path) 4 for c,d,f in res: 5 for file_name in f: 6 if keyword in file_name: 7 print('该文件在:%s'% c) 8 find_file('E:/','作业提交')
遍历某个目录下的所有文件,将文件名存入到某个文件下:
for root, dir, file in os.walk(r'F:\lx作业\jiekouzidonghua\hyc_excel_unittest'): for name in file: if name.startswith('MyRequest.log'): l.append(name+'\n') #加个换行符 with open(r'F:\lx作业\jiekouzidonghua\hyc_excel_unittest\outfile','w',encoding='utf-8') as f: f.writelines(l)
3、os.system、popen、join、path.split、path.dirname、path.getsize、getcwd、chdir
1 os.system('ipconfig') #执行操作系统命令,只能执行命令,不能获取结果。如果执行成功,返回值为0代表执行成功 2 res = os.popen('ipconfig').read() #返回执行命令的结果 3 print(res) 4 5 res=os.walk(r'中国') 6 for c,d,f in res: 7 for i in f: 8 if i.endswith('.py'): 9 os.remove(c+'/'+i) #因为文件不全是在当前目录下,所以需要写上绝对路径,但是路径中间的连接符不一定是什么,比如window就是'\',linux就是'/' 10 print(os.path.join('中国','北京','a.py')) #自动拼好路径,会自动识别当前系统,判断路径的连接符 11 12 print(os.path.split(r'中国\北京\a.py')) #分隔,将路径和文件名分隔 13 14 print(os.path.dirname(r'中国\北京\a.py')) #取父目录 15 16 print(os.path.getsize('联系.py')) #取文件的大小,单位:字节 该方法可以判断文件是否为空 17 18 print(os.getcwd()) #取当前目录 19 20 os.chdir('河北\石家庄')#进入到另外一个目录