Python 简明教程 --- 25,Python 目录操作
微信公众号:码农充电站pro
个人主页:https://codeshellme.github.io
做技术一定要一颗恒心,这样才不会半途而废。
目录
上一节我们介绍了文件相关的操作,本节我们来介绍目录
相关的操作。
1,os
模块
os
模块是Python 中的内建模块,该模块中包含许多系统相关的操作。我们要介绍的目录相关的操作,也都包含在该模块中。
我们可以使用dir(os)
来查看该模块中所有属性和函数,共有几百个属性和函数。这里我们只介绍一部分函数,可以使用help(os.函数名)
来查看某个函数的帮助手册。
os.linesep
:获取当前系统的行的换行符
。os.getcwd()
:获取当前工作目录。os.listdir(path=None)
:列出path
路径中的所有文件
和目录
。path
为None
时,表示当前目录。os.path.abspath(path)
:获取path
的绝对路径。os.path.isfile(path)
:判断path
是否是一个文件。os.path.isdir(path)
:如果path
存在且为目录,则返回True
,否则返回False
。os.path.isabs(path)
:判断path
是否是一个绝对路径。os.path.exists(path)
:判断path
是否存在。os.path.split(file)
:返回file
的路径名与文件名,返回值是一个元组。os.path.splitext(file)
:返回file
的路径
与扩展名
,返回值是一个元组。os.path.dirname(path)
:返回path
的目录 。os.path.basename(path)
:返回path
的文件名。os.rename(old, new)
: 将文件或目录old
重命名为new
。os.mkdir(dir)
:创建目录,dir
只能是单级目录。os.makedirs(dir)
:创建目录,dir
可以是单级目录,也可以是多级目录 。os.rmdir(dir)
:删除目录,dir
只能是空目录,否则抛出异常。os.remove(path)
:删除文件,如果出现错误将抛出异常
。os.removedirs(path)
:删除目录,且该目录中不能有其它文件或目录,也就是该目录必须为空,否则将出现异常。os.stat(path)
:获取文件或目录的状态信息,比如创建时间,大小等。其返回值为os.stat_result
类型。os.path.getsize(file)
:返回file
的大小 。os.chmod(file)
:修改file
的访问权限。os.chdir(path)
:从当前目录
切换到目录path
。
2,shutil
模块
shutil
模块主要是用来操作文件和目录的。
我们可以使用help(shutil)
查看该模块的帮助文档,使用dir(shutil)
查看其支持的所有类
,属性
和方法
。
>>> dir(shutil)
['Error', 'ExecError', 'ReadError',
'RegistryError', 'SameFileError',
'SpecialFileError', '_ARCHIVE_FORMATS',
'_BZ2_SUPPORTED', '_LZMA_SUPPORTED',
'_UNPACK_FORMATS', '_ZLIB_SUPPORTED',
'__all__', '__builtins__', '__cached__',
'__doc__', '__file__', '__loader__',
'__name__', '__package__', '__spec__',
'_basename', '_check_unpack_options',
'_copyxattr', '_destinsrc',
'_ensure_directory', '_find_unpack_format',
'_get_gid', '_get_uid', '_make_tarball',
'_make_zipfile', '_ntuple_diskusage',
'_rmtree_safe_fd', '_rmtree_unsafe',
'_samefile', '_unpack_tarfile',
'_unpack_zipfile', '_use_fd_functions',
'chown', 'collections', 'copy', 'copy2',
'copyfile', 'copyfileobj', 'copymode',
'copystat', 'copytree', 'disk_usage',
'errno', 'fnmatch', 'get_archive_formats',
'get_terminal_size', 'get_unpack_formats',
'getgrnam', 'getpwnam', 'ignore_patterns',
'make_archive', 'move', 'os',
'register_archive_format',
'register_unpack_format',
'rmtree', 'stat', 'sys', 'unpack_archive',
'unregister_archive_format',
'unregister_unpack_format', 'which']
这里是该模块的官方文档,本节中我们只介绍少数几个操作,其它函数的用法,可参考其官方文档。
shutil.copyfile(oldfile, newfile)
:将文件oldfile
复制一份到newfile
。shutil.copy(oldfile, new)
:将文件oldfile
复制一份到new
,返回新的文件名。new
可以是文件,也可以是目录。shutil.copytree(olddir, newdir)
:将整个目录olddir
,递归拷贝到newdir
。shutil.move(src, dst)
:将src
移动到dst
。shutil.rmtree(dir)
:删除整个目录树dir
。
(完。)
推荐阅读:
Python 简明教程 --- 20,Python 类中的属性与方法
Python 简明教程 --- 21,Python 继承与多态
Python 简明教程 --- 22,Python 闭包与装饰器
Python 简明教程 --- 23,Python 异常处理
Python 简明教程 --- 24,Python 文件读写
欢迎关注作者公众号,获取更多技术干货。
Python 简明教程 --- 25,Python 目录操作的更多相关文章
- Python 简明教程 --- 26,Python 多进程编程
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 学编程最有效的方法是动手敲代码. 目录 1,什么是多进程 我们所写的Python 代码就是一个程序, ...
- Python 简明教程 --- 8,Python 字符串函数
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 好代码本身就是最好的文档.当你需要添加一个注释时,你应该考虑如何修改代码才能不需要注释. -- St ...
- python简明教程
Python简明教程 MachinePlay关注 0.7072018.09.26 01:49:43字数 2,805阅读 9,287 Python一小时快速入门 1.Python简介 pylogo. ...
- Python 简明教程 --- 13,Python 集合
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果代码和注释不一致,那很可能两者都错了. -- Norm Schryer 目录 前几节我们已经介绍 ...
- Python 简明教程 --- 14,Python 数据结构进阶
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果你发现特殊情况太多,那很可能是用错算法了. -- Carig Zerouni 目录 前几节我们介 ...
- Python 简明教程 --- 15,Python 函数
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 测试只能证明程序有错误,而不能证明程序没有错误. -- Edsger Dijkstra 目录 本节我 ...
- Python 简明教程 --- 16,Python 高阶函数
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 对于那些快速算法,我们总是可以拿一些速度差不多但是更容易理解的算法来替代它们. -- Douglas ...
- Python 简明教程 --- 9,Python 编码
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 当你选择了一种语言,意味着你还选择了一组技术.一个社区. -- Joshua Bloch 目录 1, ...
- Python 简明教程 --- 11,Python 元组
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 软件工程的目标是控制复杂度,而不是增加复杂性. -- Dr. Pamela Zave 目录 我们在上 ...
随机推荐
- VulnHub CengBox2靶机渗透
本文首发于微信公众号:VulnHub CengBox2靶机渗透,未经授权,禁止转载. 难度评级:☆☆☆☆官网地址:https://download.vulnhub.com/cengbox/CengB ...
- Python三大器之生成器
Python三大器之生成器 生成器初识 什么是生成器 生成器本身属于迭代器.继承了迭代器的特性,惰性求值,占用内存空间极小. 为什么要有生成器 我们想使用迭代器本身惰性求值的特点创建出一个可以容纳百万 ...
- 03 . 二进制部署kubernetes1.18.4
简介 目前生产部署kubernetes集群主要两种方式 kubeadm Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群 ...
- No configuration file found and no output filename configured via Cli option.报错
webpack手动配置webpack.config.js文件,打包时出现的报错,可以试试这种解决方案 报错如下: No configuration file found and no output f ...
- 全国计算机等级考试二级笔试样卷Java语言程序设计
一.选择题((1)-(35)每小题2分,共70分) 下列各题A).B).C).D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分. (1)下列选项中不符合良好程 ...
- P1640 [SCOI2010]连续攻击游戏【并查集】
题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...
- .NET 开源工作流: Slickflow流程引擎高级开发(七)--消息队列(RabbitMQ)的集成使用
前言:工作流流程过程中,除了正常的人工审批类型的节点外,事件类型的节点处理也尤为重要.比如比较常见的事件类型的节点有:Timer/Message/Signal等.本文重点阐述消息类型的节点处理,以及实 ...
- STL初步学习(vector)
前文 初三下学期进入新的学习,对于前两年的学习内容因为各种原因 上课打游戏,睡觉,看视频 已经遗忘,忘记如何使用,算是重新学习一次信息学,希望能尽快将以前的内容弥补上来,争取能在CSP-2020取得一 ...
- 在web开发中,为什么前端比后端更得到转行程序员的青睐?必看!
1.Web开发分类与区别 人们通常将Web分为前端和后端,前端相关的职位有前端设计师(UI/UE),前端开发工程师,后端相关的有后端开发工程师. 2.技术栈区别 看各大招聘网站上,公司对前端开发工程师 ...
- 打包发布 Qt Quick/Widgets 程序
使用的QT自带的部署工具(windeployqt.exe,路径QT安装路径),版本替换debug/release Qt Quick "C:\Qt\Qt5.8.0\5.8\mingw53_32 ...