1、创建目录
os.makedirs可以递归地创建目录结构,比如
import os
os.makedirs('tmp\python\fileos',exist_ok=True)
会在当前工作目录下创建tmp,在tmp目录下创建python目录,在python目录下创建fileos目录
exist_ok=True指定了:如果某个要创建的目录已经存在,也不报错
2、删除文件和目录
os.remove可以删除一个文件,比如
import os
os.remove('removed.py')
shutil.rmtree()可以递归地删除某个目录和该目录的子目录、子文件,比如
import shutil
shutil.rmtree('tmp')
3、拷贝文件
shutil.copyfile() 可以拷贝文件,比如:
拷贝 d:/tools/good.py 到 e:good.py
from shutil import copyfile
copyfile('d:tools\good.py','e:\good.py')
如果拷贝前,e:/good.py已经存在,会被新文件覆盖
4、拷贝目录
shutil.copytree()可以 拷贝目录,比如:
from shutil import copytree
copytree('d:\tools\aaa','e:\new\bbb')
拷贝之前,目标目录必须 不存在,否则会报错
5、修改文件名、目录名
os.rename()可以修改文件名、目录名
import os
os.rename('d:\tools\aaa','d:\tools\bbb')
os.rename('d:\tools\first.py','d:\tools\second.py')
6、判定文件、目录是否存在
import os
os.path.exists('d:\systems\cmd.exe')
os.path.exists('d:\systems')
exists方法的返回值,为True表示存在,否则表示不存在
import os
os.path.isfile('d:\systems\cmd.exe')
上面的例子,可以判断 指定路径是否是文件
import os
os.path.isdir('d:\systems')
判断 指定路径是否是目录
7、当前工作目录
获得当前工作目录的路径,如下:
import os
cwd = os.getcwd()
改变工作目录到另外的路径,如下:
import os
os.chdir(path)
8、递归地遍历目录下面所有的文件
import os
# 目标目录
targetDir = r'd:\target\directory'
files = []
dirs = []
# 下面的三个变量 dirpath, dirnames, filenames
# dirpath 代表当前遍历到的目录名
# dirnames 是列表对象,存放当前dirpath中的所有子目录名
# filenames 是列表对象,存放当前dirpath中的所有文件名
for (dirpath, dirnames, filenames) in os.walk(targetDir):
files += filenames
dirs += dirnames
print(files)
print(dirs)
如果上面的代码没看懂,请点击这个视频链接
9、获取某个目录下所有文件的绝对路径
import os
# 目标目录
targetDir = r'd:\target\directory'
for (dirpath, dirnames, filenames) in os.walk(targetDir):
for fn in filenames:
# 把 dirpath 和 每个文件名拼接起来 就是绝对路径
fpath = os.path.join(dirpath, fn)
print(fpath)
10、得到目录中所有的文件和子目录名
import os
# 目标目录
targetDir = r'd:\tmp\util\dist\check'
files = os.listdir(targetDir)
print(files)
listdir返回的是该目录下面所有的文件和子目录
11、只需要获取目录中所有的文件,或者只需要子目录
import os
from os.path import isfile, join,isdir
# 目标目录
targetDir = r'd:\tmp\util\dist\check'
# 所有的文件
print([f for f in os.listdir(targetDir) if isfile(join(targetDir, f))])
# 所有的目录
print([f for f in os.listdir(targetDir) if isdir(join(targetDir, f))])
12、获得目录中指定扩展名的文件和子目录
import glob
exes = glob.glob(r'd:\tmp\*.txt')
print(exes)