1. os.path模块

3.4版本之前使用os.path模块,3.4版本之后建议使用pathlib模块

>>> from os import path
>>> p = path.join('/usr','local/httpd/httpd.conf')
>>> p
'/usr/local/httpd/httpd.conf'
>>> type(p)
<class 'str'>
>>> path.dirname(p)
'/usr/local/httpd'
>>> path.basename(p)
'httpd.conf'
>>> path.split(p)
('/usr/local/httpd', 'httpd.conf')>>> p
'/etc/local/http/httpd.conf'
>>> while p != path.dirname(p):
...      p = path.dirname(p)
...      print(p,path.basename(p))
...
/etc/local/http http
/etc/local local
/etc etc
/

2. pathlib模块

from pathlib import Path
Path中返回的是一个Path对象,而os.path中返回的是一个字符串。

2.1 目录操作
初始化:

>>> p = Path() # 当前目录
>>> p = Path('a','b','c/d') # 当前目录下的a/b/c/d
>>> p = Path('/etc') # 根下的etc目录

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> p = Path('/usr/local/httpd/httpd.conf')
>>> p.name
'httpd.conf'
>>> p.stem
'httpd'
>>> p.suffix
'.conf'
>>> p.with_name('httpd.txt')
PosixPath('/usr/local/httpd/httpd.txt')


判断目录:

>>> Path.cwd()
PosixPath('/home/yanfa')
>>> Path.home()
PosixPath('/home/yanfa')
>>> p = Path('/home/yanfa')
>>> p
PosixPath('/home/yanfa')
>>> p.is_dir()
True
>>> p.is_file()
False
>>> p.is_absolute()
True

创建目录:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> p = Path()
>>> p /= 'a/b/c/d'
>>> p.exists()
False
>>> p.mkdir() # FileNotFoundError
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/usr/local/python3.6/lib/python3.6/pathlib.py", line 1248, in mkdirself._accessor.mkdir(self, mode)File "/usr/local/python3.6/lib/python3.6/pathlib.py", line 387, in wrappedreturn strfunc(str(pathobj), *args)
FileNotFoundError: [Errno 2] No such file or directory: 'a/b/c/d'
>>> p.mkdir(parents=True)
>>> p.exists()
True

通配符匹配:

  • glob(pattern) 匹配给定的模式
  • rglob(pattern) 匹配给定的模式,递归目录,返回一个生成器
  • match(pattern) 模式匹配,成功返回True
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> p = Path()
>>> list(p.glob('h*'))
[PosixPath('h'), PosixPath('hello')]
>>> list(p.glob('**/*.py'))
[PosixPath('pass_py.py')]
>>> g = p.rglob('*.py')
>>> next(g)
PosixPath('pass_py.py')
>>> next(g)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
StopIteration
>>> p = Path('a/b/c/d')
>>> p = Path('a/b/c/ddd.py')
>>> p.match('d*.py')
True
>>> p.match('c/d*.py')
True
>>> p.match('b/*/d*.py')
True

查看文件或者目录属性信息

  • stat() 如同linux里面的stat命令
  • lstst() 同stat(),但是如果是符号链接,就显示链接本身的信息

2.2 文件操作
open(mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None如何内建的open,返回一个文件对象。

  • read_bytes() 以’rb’读取路径中对应的文件,并返回二进制流。
  • read_text() 以’rt’读取路径中对应的文件,并返回文本。
  • write_bytes(date) 以‘wb’方式写入数据到路径对应文件。
  • write_text(data) 以‘wt’方式写入数据到路径对应的文件。
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> from pathlib import Path
>>> p = Path('hello')
>>> p.write_text('hello python')
12
>>> p.read_text()
'hello python'
>>> with p.open() as f:
...      print(f.read())
...
hello python

3. shutil模块

3.1 os模块

  • os.name 返回操作系统
  • os.uname() 显示当前操作系统的详细信息
  • sys.platform 返回当前操作系统
  • os.listdir() 返回目录内容的列表
  • os.stat() 如何stat
  • os.chmod() 修改文件的权限
  • os.chown() 改变文件的属主,属组

3.2 shutil模块

shutil模块提供了对文件的高级操作,特别是针对文件的复制和移动。

  • copyfileobj(fsrc, fdst[, length]) 文件对象的复制,复制内容。
  • copyfile(src, dst, *, follow_symlinks=True) 复制文件内容,不含元数据
  • copymode() 仅仅复制权限
  • copystat() 复制元数据,stat包含权限
  • copy() 复制文件内容、权限和部分元数据,不包括创建时间和修改时间
  • rmtree() 递归删除,同rm -rf一样
  • move(src,dst,copy_function=copy2) 递归移动文件,目录到目录路径。

对Python中路径操作指南相关推荐

  1. Python中路径的写法

    Python中的路径的写法 windows的路径可以接受"/""\",但是由于"\"在python中是作为转义符使用,所以在python中若 ...

  2. python中路径的表示方式

    ** 绝对路径** windows路径中 用反斜杠来作为分割路径的符号 比如说 'E:\sub01\肖战' 在python中反斜杠还可以当做转义符,所以直接在python中使用反斜杠可能会出现问题. ...

  3. python中路径写法

    路径通常有两种表示方法,即绝对路径和相对路径. 绝对路径是从根文件夹开始的路径,写法唯一. Linux和MacOS下的绝对路径和Windows系统不同,主要区别如下: 根文件夹不同,Windows的根 ...

  4. Python 中的路径问题

    Python中os模块的使用 1. python路径的查看与修改 查看路径:os.getcwd() 修改路径:os.chdir("新的路径名") import os# 显示当前路径 ...

  5. python文件路径操作及pathlib库

    对文件的路径操作是一个非常基础的问题,但也是一个至关重要的问题,优雅的路径操作不仅可以让代码可读性更高:还可以让用户避免很多不必要的麻烦.python中路径操作常用的几种方式重要包括:字符串拼接.os ...

  6. python中绝对路径的区别,理解Python中的绝对路径和相对路径

    本文介绍了Python中的绝对路劲和相对路径,分享给大家,也给自己留个笔记 1.绝对路径 os.path.abspath("文件名"): 显示的是一个文件的绝对路劲 eg: > ...

  7. python中的路径问题汇总

    路径书写格式 windows系统中,'\'与'/'均可以在书写路径中使用,但在字符串里面\被作为转义字符使用 网页网址和linux.unix系统下一般都用'/' python在描述路径时有两种方式: ...

  8. python中的os操作文件,文件路径

    python获取文件上一级目录:取文件所在目录的上一级目录 os.path.abspath(os.path.join(os.path.dirname('settings.py'),os.path.pa ...

  9. python open 相对路径_第十四篇:Python中文件读写

    修修心养养性 处世不必邀功,无过便是功:与人不求感德,无怨便是德. 大纲 打开和关闭文件 读文件(文本文件和二进制文件) 写文件(文本文件和二进制文件) 打开和关闭文件 1.1打开文件 我们使用文件之 ...

最新文章

  1. 解决在onCreate()过程中获取View的width和Height为0的4种方法
  2. Go 学习笔记(20)— Go 操作 json 文件(编码生成 json、解码 json 为 map、解码 json 为 struct)
  3. 产业结盟 跨界共赢 | 新华三成为“中国联通物联网产业联盟” 首批成员
  4. java 应用程序的打包发行
  5. wxWidgets:wxDataInputStream类用法
  6. 引导页设计灵感,高大上的设计案例
  7. 作为一个菜鸟码农,如何判断你所在的团队是否有前途?
  8. python数据包发送给云平台_用python发送短消息(基于阿里云平台)
  9. 操作基本数据类型的流/数据流
  10. C#窗体间传值的简便方法/工具
  11. java 数据库按钮跳转_java,数据库的连接及基本操作
  12. html5用户输入后自动显示用户名已重复_lt;inputgt; | HTML输入框标签
  13. 基于html5的城市公交查询系统,城市公交在线查询系统的设计与实现
  14. python赋值01_少说话多写代码之Python学习022——赋值语句的用户01(序列解包)...
  15. 开发U3V时遇到bus hound报babble detect错误
  16. 测试——Monkey测试的介绍及使用
  17. Go:sqrt平方根计算(附完整源码)
  18. 君澜2021第一季度新开业酒店数量居世界酒店集团排名第六
  19. 【图片新闻】近日一架美军F/A-18E战斗机在星球大战峡谷附近坠毁
  20. JDK1.8中文文档-阿里云盘

热门文章

  1. Android开发中adb命令的常用方法
  2. Java虚拟机的功能
  3. jquery基础总结
  4. 怎样得到select所有option里的值
  5. [ERROR]在删除BizTalk主机之前必须删除其所有实例?
  6. php 直接定义 和 construct,PHP _construct()函数讲解
  7. 【PP生产订单】收货Goods Receipt
  8. User Exits,Customer Exits,BADI and BTE基本概念
  9. Oracle创建用户并给用户授权查询指定表或视图的权限
  10. SAP BASIS顾问认知的一些误区