目录
创建目录
os.makedirs 可以递归的创建目录结构
os.makedirs('tmp/python/fileop',exist_ok=True)
当前工作目录下面创建 tmp目录,在tmp目录下面再创建 python目录,在Python目录下面再创建fileop目录
exist_ok=True 指定了,如果某个要创建的目录已经存在,也不报错
删除文件或目录
import os
import shutil
# 删除文件
os.remove('sdf.py')
# 删除目录 递归删除文件夹内的子目录及文件
shutil.rmtree('tmp', ignore_errors=True)
参数 ignore_errors 值设置为 True ,表示忽略删除过程中的错误(比如要删除的目录不存在),不会抛出异常。
拷贝
# 拷贝 d:/tools/first.py 到 e:/first.py
shutil.copy("test.py", "tmp/test_1.py")
from shutil import copytree
# 拷贝 d:/tools/aaa 目录中所有的内容 到 e:/bbb 中
copytree('d:/tools/aaa', 'e:/new/bbb')
-
目标目录必须 不存在 ,否则会报错。
-
上面的代码执行前面,如果 e:/new/bbb 已经存在,执行到copytree时,就会报错
-
上面的代码执行前面,如果 e:/new 这个目录都不存在,执行到copytree时,就会 创建 e:/new 目录,再创建 e:/new/bbb 目录,再拷贝 d:/tools/aaa 目录中所有的内容 到 e:/new/bbb 中。
-
上面的代码执行前面,如果 e:/new 这个目录存在,但是 e:/new/bbb 不存在,执行到copytree时,就只会 创建 e:/new/bbb ,再拷贝 d:/tools/aaa 目录中所有的内容 到 e:/new/bbb 中。
修改文件名、目录名
import os
# 修改目录名 d:/tools/aaa 为 d:/tools/bbb
os.rename('d:/tools/aaa','d:/tools/bbb')
# 修改文件名 d:/tools/first.py 为 d:/tools/second.py
os.rename('d:/tools/first.py','d:/tools/second.py')
判断文件、目录是否存在
import os
os.path.exists('d:/systems/cmd.exe')
os.path.exists('d:/systems')
判断是否文件或目录
os.path.isfile('d:/systems/cmd.exe')
os.path.isdir('d:/systems')
工作目录
# 获取当前工作目录
cwd = os.getcwd()
# 修改当前工作目录
os.chdir(path)
递归的遍历目录下面所有的文件
import os
# 目标目录
targetDir = r'd:\tmp\util\dist\check'
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)
# 如果要得到某个目录下所有文件的全路径可以这样
targetDir = r'd:\tmp\util\dist\check'
for (dirpath, dirnames, filenames) in os.walk(targetDir):
for fn in filenames:
# 把 dirpath 和 每个文件名拼接起来 就是全路径
fpath = os.path.join(dirpath, fn)
得到目录中所有的文件和子目录名
import os
# 目标目录
targetDir = r'd:\tmp\util\dist\check'
# 所有子目录及文件
files = os.listdir(targetDir)
print(files)
# 所有的文件
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))])
得到目录中指定扩展名的文件和子目录
import glob
exes = glob.glob(r'd:\tmp\*.txt')
print(exes)
本文来自博客园,作者:覃空万里,转载请注明原文链接:https://www.cnblogs.com/qinkwl/p/18624472
浙公网安备 33010602011771号