展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

文件目录

  • 递归创建目录,如果路径已存在,也不会报错
import os
os.makedirs('tmp/python/fileop',exist_ok=True)
  • 删除1个文件
os.remove('sdf.py')
  • 递归删除目录
import shutil
shutil.rmtree('tmp', ignore_errors=True)
  • 拷贝文件,如果存在则覆盖
from shutil import copyfile
# 拷贝 d:/tools/first.py 到 e:/first.py
copyfile('d:/tools/first.py', 'e:/first.py')
  • 拷贝目录:拷贝前, 目标目录必须 不存在 ,否则会报错
from shutil import copytree
# 拷贝 d:/tools/aaa 目录中所有的内容 到 e:/bbb 中
copytree('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')
  • 判断是否是1个文件
import os
# 返回值为True 表示是文件
os.path.isfile('d:/systems/cmd.exe')
  • 判断是否是目录
import os
# 返回值为True 表示是目录
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)
  • 获取目录下的所有文件的路径
import os
# 目标目录
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)
  • 方式2
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))])
  • 获取指定文件
import glob
exes = glob.glob(r'd:\tmp\*.txt')
print(exes)
posted @   DogLeftover  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
历史上的今天:
2022-10-08 标识符、运算符
2022-10-08 字面量、注释、变量、数据类型、数据类型转换
2022-10-08 下载安装go,eclipse配置go
2022-10-08 python开发环境
点击右上角即可分享
微信分享提示