os 模块提供了非常丰富的方法用来处理文件和目录。常用的方法如下所示(字母顺序)
1,os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
参数:无
import os
print(os.getcwd())
2,os.chdir(path) 用于改变当前工作目录到指定的路径,相当于shell下cd、
参数:path——要切换到的新路径
os.chdir('E:\Python学习') # 这里输入你要进入的文件夹路径
print(os.getcwd()) # 打印验证即可
3,os.curdir 返回当前目录: ('.') ('.')表示当前路径
参数:无
import os
print(os.curdir) #直接使用返回 .
print(os.path.abspath(os.curdir)) #与os.getcwd()结果是一样的
print(os.getcwd())
4,os.pardir 获取当前目录的父目录字符串名:('..') ('..')表示父目录
参数:无
import os
print(os.pardir) #直接使用返回 ..
print(os.path.abspath(os.pardir)) #上级目录
5,os.makedirs(path) 用于递归创建目录,像 mkdir(), 但创建的所有intermediate-level文件夹需要包含子目录
参数:path——需要递归创建的目录,可以是 "/tmp/home/monthly/daily" 这样
print(os.makedirs('a\\b\c')) # b前面2个\\,是因为\b有特殊意义,需要转义
#执行这句代码,就会生成3个文件夹,如下图:
6,os.removedirs(path) 方法用于递归删除目录。像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般意味着你文件夹不为空)。
参数:path——要移除的目录路径
print(os.removedirs('a\\b\c'))
# b前面2个\\,是因为\b有特殊意义,需要转义
# 刚才上面创建的3个文件,通过这个命令就可以直接删除
注:若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
注:注:makedirs()和removedirs()是一组相反的函数,一个创建一个删除(针对多个层级文件操作)
7,os.mkdir(path) 生成单级目录(文件夹);相当于shell中mkdir dirname
参数:path——要创建的目录
print(os.mkdir('a')) # 创建一个名字为 a 的文件夹
8,os.rmdir(path) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
参数:path——要删除的目录路径
print(os.rmdir('a')) # 删除一个名为 a 的文件夹
9,os.remove(path) 删除路径为path的文件。如果path 是一个文件夹,将抛出OSError; 查看下面的rmdir()删除一个 directory
参数:path——要移除的文件路径
import os
os.remove("132.txt") #移除123.txt文件
print("deleted successfully !")
注:mkdir()和remove()是一组相反的函数,一个创建一个删除(针对单个层级文件操作)
10,os.listdir(path) 返回path指定的文件夹包含的文件或文件夹的名字的列表(包括隐藏文件,以列表的形式返回)
参数:path——需要列出的目录路径
import os
print(os.listdir()) # 默认是打印当前文件夹所有文件夹及文件
print(os.listdir("E:\数据分析")) #打印-E:\数据分析-下的所有文件
11,os.rename(old_name,new_name) 重命名文件/目录,从 old_name到 new_name,如果new_name是一个存在的目录, 将抛出OSError
参数:old_name——要修改的文件名/目录名
new_name——修改后的文件名目录名
os.rename("old_name","new_name")
12,os.stat(path) 获取path指定的路径的信息,功能等同于C API中的stat()系统调用
参数:path——指定路径
import os
print(os.stat("E:\数据分析"))
13,os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
参数:无
print(os.sep)
# 在Windows上的pycharm运行结果:\
14,os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
参数:无
15,os.pathsep 输出用于分割文件路径的字符串 win下为; , Linux下为:
import os
print(os.pathsep) #打印结果为;
16,os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
import os
print(os.name) #打印结果为nt
17,os.environ 获取系统环境变量
18,特殊用法
import sys,os
BASE_DIR = os.path.dirname(os.path.dirname(__file__)) #获取文件的绝对路径
sys.path.append(BASE_DIR)
19,os处理路径
#方式一:推荐使用
import os
#具体应用
import os,sys
possible_topdir = os.path.normpath(os.path.join(
os.path.abspath(__file__),
os.pardir, #上一级
os.pardir,
os.pardir
))
sys.path.insert(0,possible_topdir)