os模块除了提供使用操作系统功能和访问文件系统的简便方法之外,还提供了大量文件与文件夹操作的方法,如下表所示。

方法 功能说明
access(path,mode) 按照 mode 指定的权限访问文件
chdir(path) 把 path 设置为当前工作目录
chmod(path,mode,*,dir_fd=None,follow_symlinks=True) 改变文件的访问权限
extsep 当前操作系统所使用的文件扩展名分隔符
fstat(path) 返回打开的文件的所有属性
get_exec_path() 返回可执行文件的搜索路径
getcwd() 返回当前的工作目录
listdir(path) 返回path目录下的文件和目录列表
mkdir(path[,mode=0777]) 创建目录
makedirs(path1/path2/...,mode=551) 创建多级目录
open(path,flags,mode=0o777,*,dir_fd=None) 按照mode指定的权限打开文件,默认权限为可读、可写、可执行
rmdir(path) 删除目录,目录中不能有文件或子文件夹
remove(path) 删除指定的文件
removedirs(path1/path2...) 删除多级目录,目录中不能有文件
rename(src,dst) 重命名文件或目录,可实现文件的移动
scandir(path='.') 返回包含指定文件夹中所有DirEntry对象的迭代对象
sep 当前操作系统所使用的路径分隔符
startfile(filepath[,operation]) 使用关联的应用程序打开指定文件或启动指定应用程序
stat(path) 返回文件的所有属性
truncate(path,length) 将文件截断,只保留指定的长度
walk(top,topdown=True,onerror=None) 遍历目录树,该方法返回一个元组,包含3个元素:所有路径名、所有目录列表与文件列表
write(fd,data) 将 bytes 对象 data 写入文件fd

  os.path模块提供了大量用于路径判断、切分、连接以及文件夹遍历的方法,如下表所示。

方法 功能说明
abspath(path) 返回给定路径的绝对路径
basename(path) 返回指定路径的最后一个组成部分
commonpath(paths) 返回戈丁的多个路径的最长公共路径
commonprefix(paths) 返回给定的多个路径的最长公共前缀
dirname(p) 返回给定路径的文件夹部分
exists(path) 判断文件是否存在
getatime(filename) 返回文件的最后访问时间
getctime(filename) 返回文件的最后创建时间
getmtime(filename) 返回文件的最后修改时间
getsize(filename) 返回文件的大小
isabs(path) 判断path是否为绝对路径
isdir(path) 判断path是否为文件夹
isfile(path) 判断path是否为文件
join(path,* paths) 连接两个或多个path
split(path) 对绝对路径进行分割,以列表形式返回
splitest(path) 从路径中分隔文件的扩展名
splitdrive(path) 从路径中分隔出驱动器的名称

  shutil模块也提供了大量的方法支持文件和文件夹的操作,常用方法如下表所示。

方法 功能说明
copyfile(src,dst) 复制文件
copytree(src,dst) 递归复制文件夹
disk_usage(path) 查看磁盘使用情况
move(src,dst) 移动文件或递归移动文件夹
rmtree(path) 递归删除文件夹
make_archive(base_name,format,root_dir=None,base_dir=None) 创建tar或zip格式的压缩文件
unpack_archive(filename,extract_dir = None,format = None) 解压缩文件

  下面通过几个示例来演示os、os.path 以及 shutil 模块的基本用法。

 import os
import os.path as op print(op.basename(r'C:\windows\notepad.exe')) #获取路径的最后一个组成部分
#notepad.exe print(op.exists(r'test1.txt')) #测试文件是否存在
#notepad.exe #----------------------------------------------
#os.rename(r'C:\test1.txt',r'C:\test2.txt') #源文件不存在,重命名失败
'''
Traceback (most recent call last):
File "C:/Users/dddd/AppData/Local/Programs/Python/Python35/test1.py", line 10, in <module>
os.rename(r'C:\test1.txt',r'C:\test2.txt') #源文件不存在,重命名失败
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'C:\\test1.txt' -> 'C:\\test2.txt'
'''
#---------------------------------------------- #os.rename(r'C:\Users\dddd\AppData\Local\Programs\Python\Python35\infomation.txt','C:\\infomation.txt') #os.rename() 可实现文件的改名和移动
#这里区分是移动还是改名就看是不是在同一个路径下,是则为改名,否则为移动 print(op.exists('C:\\infomation.txt'))
#True #返回路径的文件夹名
path = r'D:\mypython_exp\new_test.txt'
print(os.path.dirname(path)) #D:\mypython_exp #返回文件名
print(os.path.basename(path)) #new_test.txt #切分文件路径和文件名
print(os.path.split(path)) #('D:\\mypython_exp', 'new_test.txt') print(os.path.splitdrive(path)) #('D:', '\\mypython_exp\\new_test.txt') #切分文件拓展名
print(os.path.splitext(path)) #('D:\\mypython_exp\\new_test', '.txt') #获取当前工作目录下的 拓展名为.py的文件
print([fname for fname in os.listdir(os.getcwd()) if os.path.isfile(fname) and fname.endswith('.py')])
#['BinaryTree.py', 'demo.py', 'demo_new.py', 'MyArray.py', 'myQueue.py', 'simNumpyArray.py', 'Stack.py', 'test.py', 'test1.py'] #返回当前工作目录
print(os.getcwd()) #C:\Users\...\Programs\Python\Python35 #在当前工作目录下创建子目录
#print(os.mkdir(os.getcwd() + r'\pyfile')) #把当前工作目录切换到pyfile目录下
os.chdir(os.getcwd() + r'\pyfile') #返回\pyfile目录下的文件
print(os.listdir(os.getcwd())) #因为这个目录刚创建,还没有文件,所以返回空列表 [] #当前目录还可以用 . 表示 上级目录可以用 .. 表示,,这是相对路径
print(os.listdir('.')) #[]
print(os.listdir('..')) #['.idea', 'BinaryTree.py', ...,] #在 pyfile目录下再创建一个目录
#os.mkdir('aa') #删除刚才创建的目录
#os.rmdir('aa') print(os.path.commonpath([r'C:\windows\notepad.exe',r'C:\windows\system'])) #C:\windows
print(os.path.commonprefix([r'a\b\c\d',r'a\b\c\e'])) #a\b\c\
 import shutil

 #shutil.copyfile(r'C:\infomation.txt','C:\\Users\\dddd\\AppData\\Local\\Programs\\Python\\Python35\infomation.txt')  #OK了,复制过来了

 #将某个文件夹及该文件夹中所有文件压缩至 当前目录下的 a.zip
#shutil.make_archive('.\\a','zip','.','a') #OK了,压缩成功了。 #将刚才的压缩文件解压至 .\aa文件夹下
shutil.unpack_archive('.\a.zip','.\aa')

6.4.1 标准库 os、os.path 与 shutil 简介的更多相关文章

  1. python常用标准库(os系统模块、shutil文件操作模块)

    常用的标准库 系统模块 import os 系统模块用于对系统进行操作. 常用方法 os模块的常用方法有数十种之多,本文中只选出最常用的几种,其余的还有权限操作.文件的删除创建等详细资料可以参考官方文 ...

  2. 『Golang』—— 标准库之 os

    Golang 的 os 库基本承袭 Unix 下 C 语言的用法 path 库: func Base(path string) string //取文件名,不含目录部分 func Dir(path s ...

  3. Python标准库之os模块

    1.删除和重命名文件 import os import string def replace(file, search_for, replace_with): # replace strings in ...

  4. go标准库的学习-path/filepath

    参考https://studygolang.com/pkgdoc 标准库path中有的该path/filepath库中都有,所以一般都使用path/filepath 导入方式: import &quo ...

  5. C++标准库类型vector及迭代器iterator简介

    Vector是C++标准库类型,称为容器,一个容器中的所有对象必须是同一种类型的.与数组相比,其最大的优点就是动态增长.Vector是一个类模板,并不是数据类型,而vector<int>和 ...

  6. python3.5学习第二章(1)标准库,bytes

    一.输出python库的路径: 1.sys标准库 import sysprint(sys.path) 结果: 'E:\\python练习\\python35学习\\Day2', 'E:\\python ...

  7. 简明Python3教程 16.标准库

    简介 python标准库作为python标准安装的一部分,其自身包含数量庞大的实用模块, 因此熟悉python标准库非常重要,因为很多问题都能利用python标准库快速解决. 下面我们将研究标准库中的 ...

  8. 常用的 Python 标准库都有哪些?

    标准库:os 操作系统,time 时间,random 随机,pymysql 连接数据库,threading 线程,multiprocessing进程,queue 队列. 第三方库:django 和 f ...

  9. python标准库介绍——2 os.path模块详解

    == os.path 模块 == ``os.path`` 模块包含了各种处理长文件名(路径名)的函数. 先导入 (import) ``os`` 模块, 然后就可以以 ``os.path`` 访问该模块 ...

随机推荐

  1. to prof. Choi

    Dear Prof. Choi It is my great pleasure to receive your reply ,but terribly sorry for my late reply ...

  2. oc84--单利

    // Tools.h #import <Foundation/Foundation.h> @interface Tools : NSObject<NSCopying, NSMutab ...

  3. 01-S3C2440学习入门概念+环境搭建【转】

    本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/54754812 一.心得: 这两年学过很多东西,有点杂,总感觉不够踏实,于是准备写 ...

  4. 软-RAID 5组建

    图文版raid5组建之软RAID  [复制链接]   发表于 2007-3-6 09:19 | 来自  51CTO网页 [只看他] 楼主             硬件raid5的组建和使用,基本上说完 ...

  5. 【Codeforces 429D】 Tricky Function

    [题目链接] http://codeforces.com/problemset/problem/429/D [算法] 令Si = A1 + A2 + ... + Ai(A的前缀和) 则g(i,j) = ...

  6. bzoj1227

    离散化+树状数组+排列组合 很久以前就看到过这道题,现在依然不会做...看完题解发现思路很简单,就是有点难写 我们先将坐标离散化,x和y最大是w,然后我们就有了一个暴力做法, 枚举每块墓地,统计,因为 ...

  7. consul备份还原导入导出

    工作中要保证生产环境部署的consul的集群能够安全稳定地对外提供服务,即使出现系统故障也能快速恢复,这里将讲述部分的备份还原操作及KV的导入导出操作. 备份与还原 需要备份的主要有两类数据:cons ...

  8. 如何使jquery性能最佳

    转自 http://www.cnblogs.com/mo-beifeng/archive/2012/02/02/2336228.html 1. 使用最新版本的jQuery jQuery的版本更新很快, ...

  9. 如何看待B站疑似源码泄漏的问题?

    今天突然看到关于B站源码泄漏事.网曝B站整个网站后台工程源码遭泄露,开源项目平台Github上疑似出现了Bilibili网站后台工程,内含部分用户名密码.目前官方还没对此事作出任何回应,所以还无法确定 ...

  10. openpyxl python操作Excel表格,

    这里openpyxl只支持xlsx格式的Excel,openpyxl使用起来会更方便一些,所以如果只操作小流水线文件的话,那么可以优先选择openpyxl,如果要兼容xls的话,就使用xlrd/xlw ...