Python常用模块os和shutil学习
时间:2022-07-28
本文章向大家介绍Python常用模块os和shutil学习,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
os
就是“operating system”的缩写,python中的os模块提供了对目录或者文件的新建/删除/查看等属性,还提供了对文件以及目录的路径操作,比如创建、删除目录等。
下面是os模块常用方法思维导图
shutil模块
shutil模块属于高级文件操作模块,可以做os模块的补充,主要可以实现文件的复制和解压缩操作等等。
常用函数
1.复制文件
shutil.copy(要复制的文件,需要复制的文件位置)
copy2() 复制文件,会保留原有文件的信息(操作时间和权限等)
#将文件text01.txt复制到文件夹B
import shutil
file01='/Users/tongtony/测试案例/文件夹A/text01.txt'
dirb='/Users/tongtony/测试案例/文件夹B'
shutil.copy(file01,dirb)
copyfile() 复制文件内容,打开文件复制内容,在新建文件复制到新的文件中。
import shutil
file01='/Users/tongtony/测试案例/文件夹A/text01.txt'
file02='/Users/tongtony/测试案例/文件夹B/text02.txt'
shutil.copyfile(file01,file02)
2.复制文件夹
copytree 拷贝整个文件夹,返回目标地址路径。
shutil.copytree(要复制的文件夹,要复制的新的文件夹位置)
dir01='/Users/tongtony/测试案例/文件夹A'
dir03='/Users/tongtony/测试案例/文件夹D'
shutil.copytree(dir01,dir03)
3.删除文件夹
shutil.rmtree(dir03)
4.移动文件/文件夹
shutil.move(要移动的文件/文件夹,要粘贴到的文件位置)
file01='/Users/tongtony/测试案例/文件夹C/text01.txt'
dir04='/Users/tongtony/测试案例/文件夹D'
shutil.move(file01,dir04)
5.压缩文件
#shutil.make_archive(base_name, format,root_dir=None,...)
#打包或压缩文件,并且返回操作后的文件路径~
# 参数说明:
# base_name:压缩包的文件名(abc.tar.gz,则base_name为abc),也可以是绝对路径;若是文件名,则压缩后的文件默认存放于当前目录,若是绝对路径,则压缩有的文件就保存到指定路径~
# format:指定压缩或打包的类型,"zip","tar","bztar","gztar"
# root_dir:需要压缩的文件或目录路径
dir01='/Users/tongtony/测试案例/文件夹B'
# dir04='/Users/tongtony/测试案例/文件夹D'
shutil.make_archive(dir01,'zip',dir01)
6.解压文件
zipfile='/Users/tongtony/测试案例/文件夹B.zip'
# shutil.unpack_archive(需要解压的文件,需要解压到的目录,不写默认当前目录)
shutil.unpack_archive(zipfile,'/Users/tongtony/测试案例')
使用os和shutil模块的一个案例
按照文件格式自动归类到文件夹
import os
import shutil
# 列出当前目录下的所有文件
path= './'
files=os.listdir(path)
# 遍历文件
for f in files:
#以扩展名为目录名
folder_name=path+f.split('.')[-1]
#不存在该目录,则创建
if not os.path.exists(folder_name):
os.makedirs(folder_name)
#移动文件到目录
shutil.move(f,folder_name)
else:
shutil.move(f,folder_name)
- 关于python使用threadpool中的函数单个参数和多个参数用法举例
- python科学计算之numpy
- 关于python使用cv画矩形并填充颜色同时填充文字
- Go语言入门基础
- 【前端编程】加载第三方JS的各种姿势
- ubuntu16中遇到libgstreamer-0.10.so.0缺失解决方案
- 关于文件的压缩与解压
- Storm读取Kafka数据是如何实现的
- faster-rcnn在编译时遇到的一些问题
- 使用感知机训练加法模型
- 让你真正理解什么是SparkContext, SQLContext 和HiveContext
- 谈谈Go语言的反射三定律
- centos6.x升级protobuf操作流程.
- java调用c++函数的简单笔记
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法