每天写一点,总有一天我这条咸鱼能变得更咸
python 中对文件及目录的操作基本依赖与os,shutil模块,其中以os模块为主,最主要的几个方法实例如下:
1.判断文件/目录是否存在(os.path.exists(filename)),实例如下:
文件存在则返回True,不存在则返回False
2.获取当前文件路径(os.getcwd()),实例如下:
3.删除文件(os.remove()),实例如下:
删除文件需确保文件确实存在
4.修改文件/目录名(os.rename()),实例如下:
修改文件名需要确定文件存在
5.遍历目录下的所有文件(os.walk),实例如下:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 import os 4 5 6 for dirs,paths,names in os.walk(os.getcwd()): 7 for path in paths: 8 print path 9 10 for name in names: 11 print os.path.join(dirs,path,name)
输出如下:
1 .idea 2 D: est_his.ideaa.txt 3 D: est_his.idea.txt 4 D: est_his.ideamain.py 5 D: est_his.ideascrpy.py 6 D: est_his.idea est.py 7 D: est_his.idea est1.py 8 inspectionProfiles 9 D: est_his.ideainspectionProfilesencodings.xml 10 D: est_his.ideainspectionProfilesmisc.xml 11 D: est_his.ideainspectionProfilesmodules.xml 12 D: est_his.ideainspectionProfiles est_his.iml 13 D: est_his.ideainspectionProfilesworkspace.xml 14 D: est_his.ideainspectionProfilesinspectionProfilesprofiles_settings.xml
其余方法和函数简介如下:
名称 | 作用 | 备注 |
os.listdir(filedir) | 返回指定目录下的所有文件名和目录名 | 目录存在 |
os.removedirs(r'filedir') | 删除多个目录 | 目录存在 |
os.path.getsize(filename) | 获取文件大小 | |
os.path.splitext(filename) | 分离后缀名 | 分离最后一个.符号后面的前后内容 |
os.path.isfile() | 判断是否为文件 | |
os.path.isdir() | 判断是否为目录 | |
os.path.split() | 分离文件目录和文件名 | |
os.path.dirname() | 获取路径名 | |
os.path.islink() | 是否存在链接 | |
os.mkdir() | 创建目录 | |
os.makedirs() | 创建多个目录 | |
os.chmod() | 修改权限 | |
os.stat | 获取文件属性 | |
shutil.copyfile() | 拷贝文件 | |
shutil.copy(file,path) | 拷贝文件到目录 | |
shutil.copytree(path,newpath) | 拷贝整个目录 | |
shutil.move() | 移动文件或者目录 | |
shutil.rmtree(dir) | 删除目录 |