os模块操作文件和目录
1. 操作文件和目录常用的方法
常用的操作文件的模块os模块和shutil模块
1.1 os模块
-
获取当前python脚本程序工作路径:os.getcwd()
import os print("当前脚本目录路径为:",os.getcwd()) #当前脚本目录路径为: D:\CS\Project\标准库
-
返回指定路径/目录下的所有文件和文件夹名:os.listdir()
import os print("D:\CS\Project\标准库-该目录下的所有文件和目录:",os.listdir("D:\CS\Project\标准库")) #D:\CS\Project\标准库-该目录下的所有文件和目录: ['os模块.py', '时间的简单风格.py', '测试文件夹']
-
删除一个文件:os.remove(file)
print("删除文件",os.remove('D:\CS\Project\标准库\测试删除.txt'))
-
删除多个空目录:os.removedirs(path)
- 当目录不为空会报错。
- 当目录内有空目录也会报错
- 只有目录下一个文件都没有,才能正常运行
- os.removedirs(filepath),没有返回值,打印返回None
- 程序执行完,删除文件后,再运行报错 ”FileNotFoundError: [WinError 2] 系统找不到指定的文件“
print("删除空目录",os.removedirs("D:\CS\Project\测试目录")) #OSError: [WinError 145] 目录不是空的。 #删除文件后 os.removedirs("D:\CS\Project\测试目录")
-
判断给出的路径是否是一个文件:os.path.isfile(filepath)
print(os.path.isfile("D:\CS\Project\测试文件.py")) #True
-
判断路径是否为一个目录:os.path.isdir(filepath)
print(os.path.isdir("D:\CS\Project\测试文件.py")) #False print(os.path.isdir("D:\CS\Project")) #True
-
判断路径是否存在:os.path.exists(filepath)
- 路径是否存在可以理解为某个文件的路径或者某个文件目录的路径是否存在。
print("判断路径是否存在",os.path.exists("D:\CS\Project\递归")) print("判断文件是否存在:",os.path.exists("D:\CS\Project\测试文件.py"))
-
分离路径的目录名和文件名:os.path.split()
- 返回元组
print("分离文件目录和文件",os.path.split("D:\CS\Project\测试文件.py")) #分离文件目录和文件 ('D:\\CS\\Project', '测试文件.py')
-
获取路径名:os.path.dirname(filepath)
print("获取路径名",os.path.dirname("D:\CS\Project\测试文件.py")) #获取路径名 D:\CS\Project
-
给出当前系统平台使用的行终止符:os.linesep()
- windows使用"\r\n",打印会换行,str.encode()编码后可以查看。
- Linux使用"\n"
- mac使用"\r"
print("window行尾终止符",os.linesep) print("上面有空行") print(os.linesep.encode("utf-8")) #b'\r\n'
-
重命名文件或者目录:os.rename(old,new)
- 如果路径下没有此文件或者目录会报错,FileNotFindError
print("重命名",os.rename("D:\CS\Project\测试文件.py","D:\CS\Project\新测试文件.py")) print("重命名文件目录",os.rename("D:\CS\Project\测试目录","D:\CS\Project\新测试目录"))
-
创建多级目录:os.makedirs(filepath)
- 无返回值,直接调用函数方法即可,不用打印
- 返回None
print("创建多级目录",os.makedirs(r"D:\CS\Project\新测试目录\a\b"))
-
创建单个目录:os.mkdir(“测试”)
- 没有指定路径的前提下,在当前脚本所有路径下创建文件夹
print("创建单个文件目录",os.mkdir("测试"))
-
修改文件权限和时间戳
- 下面举例,stat.S_IWUSR是指拥有者文件有读写权限,更多权限
[外链
import os import stat os.chmod("D:\CS\Project\标准库\测试文件夹\测试文件.txt",stat.S_IWUSR)
-
获取文件大小:os.path.getsize()
print(os.path.getsize("D:\CS\Project\标准库\测试文件夹\测试文件.txt"))
1.2 shutil模块
-
复制文件夹:shutil.copytree(“oldir”, “newdir”)
import shutil shutil.copytree("D:\CS\Project\标准库\测试","D:\CS\Project\标准库\新测试")
-
复制文件:shutil.copyfie(“oldfile”, “newfile”)
shutil.copyfile("D:\CS\Project\标准库\时间的简单风格.py",".\垃圾.py")
-
复制文件:shutil.copy(“oldfile”, “newfile”/newpath)
shutil.copy("D:\CS\Project\标准库\时间的简单风格.py","D:\CS\Project\标准库\测试文件夹\时间2.py")
-
移动文件:shutil.move(“oldposition”, “newposition”)
shutil.move('D:\CS\Project\标准库\垃圾.py',"D:\CS\Project\标准库\测试文件夹")
-
删除目录:
- os.rmdir(“dir”) 只能删除空目录
- shutil.rmtree(“dir”)空目录,有文件的目录都可以删除
shutil.rmtree("D:\CS\Project\标准库\测试文件夹")
库\测试文件夹") -
删除目录:
- os.rmdir(“dir”) 只能删除空目录
- shutil.rmtree(“dir”)空目录,有文件的目录都可以删除
shutil.rmtree("D:\CS\Project\标准库\测试文件夹")