Python文件操作os,shutil模块

来源:互联网 发布:dnf换装软件 编辑:程序博客网 时间:2024/05/22 09:30

说明

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 0
原创粉丝点击