Python文件操作os,shutil模块

说明

os 模块提供了非常丰富的方法用来处理文件和目录

常用OS模块方法

OS模块

  • os.getcwd() – 得到当前工作的目录
  • os.remove() – 删除指定文件
  • os.rmdir() – 删除指定目录(空目录)
  • os.mkdir() – 创建目录
  • os.makedirs() – 递归创建目录
  • os.path.isfile() – 判断指定对象是否为文件。是返回True,否则False
  • os.path.isdir() – 判断指定对象是否为目录。是True,否则False
  • os.system() – 执行shell命令
  • os.chdir() – 改变目录到指定目录
  • os.path.getsize() – 获得文件的大小,如果为目录,返回0
  • os.path.abspath() – 获得绝对路径
  • os.path.exists(name) – 判断是否存在文件或目录name
  • os.rename(old, new) – 重命名
  • os.listdir() – 返回指定目录下的所有文件和目录名
  • os.mknod(“test.txt”) – 创建空文件

shutil模块

  • shutil.copyfile(“oldfile”,”newfile”) – 复制文件oldfile和newfile都只能是文件
  • shutil.copy(“oldfile”,”newfile”) – 复制文件,oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
  • shutil.copytree(“olddir”,”newdir”) – 复制文件夹,olddir和newdir都只能是目录,且newdir必须不存在
  • shutil.move(“oldpos”,”newpos”) – 移动文件或目录
  • shutil.rmtree(“dir”) – 空目录、有内容的目录都可以删
应用例子

检查路径是否存在,不存在则创建

def check_file_path(file_path, date):
    """
    检查路径,不存在创建
    :param file_path:
    :param date:日期 :2017-05-11
    :return:
    """
    if file_path[0] == ".":
        # 相对路径的处理
        cwd = os.getcwd()
        re_file_path = os.path.abspath(file_path)
        file_dir = os.path.join(re_file_path, date)
        # 判断存储路径是否存在
        if os.path.isdir(file_dir):
            return file_dir
        else:
            os.chdir(file_path)
            os.mkdir(date)
            os.chdir(cwd)
            return file_dir
    else:
        file_dir = os.path.join(file_path, date)
        # 判断存储路径是否存在
        if os.path.isdir(file_dir):
            return file_dir
        else:
            os.chdir(file_path)
            os.mkdir(date)
            return file_dir

将文件夹打包并删除

def make_zip(source_dir, output_filename):
    zipf = zipfile.ZipFile(output_filename, 'w')
    pre_len = len(os.path.dirname(source_dir))

    for parent, dirnames, filenames in os.walk(source_dir):
        for filename in filenames:
          pathfile = os.path.join(parent, filename)
          arcname = pathfile[pre_len:].strip(os.path.sep)   #相对路径
          zipf.write(pathfile, arcname)
    zipf.close()

cwd = os.getcwd()
os.chdir(base_url)
make_zip(station_path, zip_name)
shutil.rmtree(str(station_id))
os.chdir(cwd)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值