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('河北\石家庄')#进入到另外一个目录

 

posted on 2018-10-02 10:17  羽竹  阅读(165)  评论(0编辑  收藏  举报