路径操作

路径操作模块

os模块

os属性

os.name  # windows是nt, linux是posix
os.uname() # *nix支持
sys.platform #sys模块的属性, windows显示win32, linux显示linux

os方法

	os.listdir('o:/tmp') # 返回指定目录内容列表,不递归
os.stat(path, *, dir_fd=None, follow_symlinks=True)
os.lstat() # 如果是软连接可以使用这个方法
os.stat_result()
os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True) # 改变文件属主属组但要有足够权限

os.path属性

	path.altsep  # windows下的备选路径分隔符/;Linux下没有备选路径分隔符,只能用/,返回None
path.curdir # 返回一个 . 是当前路径,字符串

os.path方法

	p = path.join('etc', 'sysconfig', 'network-scrips', 'ifcfg-ens33') # 拼接,返回一个字符串
path.exists(p) # 存在,返回bool值
path.split(p) # 切割,返回一个元组,元组中有两个元素,第一个是dirname,第二个是basename
path.dirname(p) # 返回p的dirname,字符串格式
path.basename(p) # 返回p的basename,字符串格式
path.abspath(p) # 无论p是否存在,都能返回p的绝对路径
path.abspath('') == path.abspath('.') # 两个都是返回当前路径的绝对路径,path.abspath()报错
path.splitdrive(p)
# 切割出一个元组,第一部分是盘符,第二部分从根开始,没有盘符,第一部分是空串
path.splitext(p) # 切割出一个元组,第二部分是最后一个suffix,如果没有suffix,第二部分是空串
path.commonpath(容器) # 容器(可以是列表元组集合)中有至少一个路径字符串,返回相同部分字符串
path.commonprefix(列表或元组) # 列表和元组可以为空,返回一个字符串,是相同部分,如果有最后一个suffix只会返回到最后一个suffix之前的部分 p1 = path.abspath(__file__)
while p1 != path.dirname(p1):
p1 = path.dirname(p1)
print(p1)

pathlib模块Path类

Path类的方法和属性

	Path.cwd()  # 返回current work directory ; 一个Path对象
Path.home() # 返回当前home路径, 是Path对象

Path对象

	p = Path('/etc', 'sysconfig', Path()) # 生成一个Path类对象
p = Path() == p is Path('') is p = Path('.') # 这三个返回三个点 . ,是当前路径对象
str(p) # 把路径对象转换成路径字符串
bytes(p) # 把路径对象转换成路径字节

Path对象操作符

Path对象 / Path对象, 生成一个新的Path对象
Path对象 / 字符串, 生成一个新的Path对象
字符串 / Path对象, 生成一个新的Path对象

Path对象属性

	p.parent # 得到Path对象p的父目录,还是个Path对象
p.parents # 得到一个惰性Path对象,但是这个惰性对象是可以索引,但不能超界,可以用驱动
p.name # 相当于基名,是字符串
p.stem # name中去掉最后一个suffix之后的部分,是字符串
p.suffix # 最后一个后缀,是一个字符串
p.suffixes # 返回一个列表,里面是所有的suffix,每一个都是字符串类型
name = stem + suffix

Path对象方法

	p.with_suffix('.az') # 有扩展名则替换,没扩展名则补充, 返回的还是Path对象
p.with_name('hello') # 替换目录最后一个部分,并返回一个新的路径对象
p.cwd() # 返回current work directory ; 一个Path对象
p.home() # 返回当前home路径, 是Path对象
p.resolve() # windows下返回p的当前路径,是Path对象,Linux下如果是软链接则直接被解析
p.absolute() # 返回绝对路径,是Path对象
p.mkdir(mode=0o777, parents=False, exist_ok=False)
# 创建目录,如果parents为False时,父目录不存在,则报出FileNotFoundError
# exist_ok参数是3.5版本加入,False时,路径存在,抛出FileExistsError,True时忽略
p.rmdir() # 删除Path对象最后一个目录,但是要求最后一个目录为空,否则报错
p.touch(mode=0o666, exist_ok=True) # 创建一个文件,文件名是p.name
p.as_uri() # 将路径返回成URL, 例如'file:///etc/passwd'
p.iterdir() # 将p目录下的所有内容返回成一个迭代器,需要驱动,其中每一个元素都是Path对象
p.glob("*.*") # **/*.py 表示递归所有目录,相当于rglob; */*.py向下一层
# 返回一个惰性可迭代对象,这个惰性可迭代对象中每个元素都是Path对象
p.rglob("*.?") # 返回一个生成器,next(p.rgolob)、list(p.rglob)
Path('a/b/c.py').match('*.py') # 模式匹配True
p.stat() # 相当于Linux下的stat命令
p.lstat() # 如果是软链接不追踪,只显示软链接的信息
p.open(mode='r', buffering=-1, encoding=None, error=None, newline=None)
# 使用方法类似于open(filedir,mode='r', buffering=-1, encoding=None, error=None, newline=None)
p.read_bytes() # 以'rb'模式读取路径对应文件,返回二进制流
p.read_text(encoding=None, errors=None) # 以'rt'方式读取路径对应文件,返回文本
p.write_bytes(data) # 以'wb'方式写入数据到路径对应文件。
p.write_text(data, encoding=None, errors=None) # 以'wt'方式写入字符串到路径对应文件 for x in p.parents[len(p.parents)-1].iterdir():
print(x, end='\t')
if x.is_dir():
flag = False
for _ in x.iterdir():
flag = True
break
print('dir{},{}'.format(x, 'Not empty' if flag else 'empty'))
elif x.is_file():
print("{}is file".format(x))
else:
print('other') # 一些判断方法:
p.exists() # 目录或文件是否存在
p.is_dir() # 是否是目录,目录存在返回True
p.is_file() # 是否是普通文件
p.is_symlink() # 是否是软链接
p.is_socket() # 是否是socket文件
p.is_block_device() # 是否是块设备
p.is_char_device() # 是否是字符设备
P.is_absolute() # 是否是绝对路径

路径操作OS模块和Path类(全)一篇够用!的更多相关文章

  1. python之文件系统操作(os模块)

    文件系统操作(os模块) import os file_name = "D:\\test_data\\1.txt" file_name_2 = "D:\\test_dat ...

  2. python文件、文件夹操作OS模块

    转自:python文件.文件夹操作OS模块   '''一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前工作目录,即当前Python脚本工作的目录路径: ...

  3. day18 时间:time:,日历:calendar,可以运算的时间:datatime,系统:sys, 操作系统:os,系统路径操作:os.path,跨文件夹移动文件,递归删除的思路,递归遍历打印目标路径中所有的txt文件,项目开发周期

    复习 ''' 1.跨文件夹导包 - 不用考虑包的情况下直接导入文件夹(包)下的具体模块 2.__name__: py自执行 '__main__' | py被导入执行 '模块名' 3.包:一系列模块的集 ...

  4. 17 - 路径操作-shutil模块

    目录 1 路径操作 1.1 os.path模块 1.2 pathlib模块 1.2.1 目录操作 1.2.2 文件操作 1.3 os 模块 2 shutil模块 2.1 copy复制 2.2 rm删除 ...

  5. C# IO操作(一)Path类的常用方法

    1.Path类,查看编译器可知,这个类是个静态的工具类,需要注意的是,这个类是对字符串的操作,与文件无关. 1)ChangeExtension()方法,修改文件的后缀(调用这个方法,如果给第二个参数制 ...

  6. [转]python中对文件、文件夹的操作——os模块和shutil模块常用说明

    转至:http://l90z11.blog.163.com/blog/static/187389042201312153318389/ python中对文件.文件夹的操作需要涉及到os模块和shuti ...

  7. python文件操作os模块

    Python 统计某一文件夹下文件数量 使用python  pathlib模块 from pathlib import Path dir_path = ' ' print(len(list(Path( ...

  8. 元数据的概念以及相关的操作os模块、shutil模块

    查看文件的元数据 stat [OPTION]… FILE… OPTION: -f 输出文件系统的状态,而非文件的状态 -t 显示简要格式的文件元数据信息 FILE:可同时查看多个文件的元数据信息,多个 ...

  9. Python进阶5---StringIO和BytesIO、路径操作、OS模块、shutil模块

    StringIO StringIO操作 BytesIO BytesIO操作 file-like对象 路径操作 路径操作模块 3.4版本之前:os.path模块 3.4版本开始 建议使用pathlib模 ...

随机推荐

  1. Python接口测试框架实战与自动化进阶☝☝☝

    Python接口测试框架实战与自动化进阶☝☝☝  一.fiddler在工作中的运用  1.如何抓接口 抓紧手机端接口 ①.在电脑终端输入:ipconfig ,找到电脑ip ②.打开手机,连接WiFi, ...

  2. Python爬虫工程师必学——App数据抓取实战 ✌✌

    Python爬虫工程师必学——App数据抓取实战 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 爬虫分为几大方向,WEB网页数据抓取.APP数据抓取.软件系统 ...

  3. Python之——python-nmap的安装与常用方法说明

    一.python-nmap安装 # yum -y install nmap #安装nmap工具# 模块pip方式安装# pip install nmap# 模块源码安装# wget http://xa ...

  4. PHP 奇葩的debug_zval_dump的输出

    有段代码: $a1 = 'Hello world!'; $a2 = &$a1; echo "test1 :"; debug_zval_dump($a1); $b1 = 'H ...

  5. [Luogu2422]良好的感觉

    题目描述 kkk做了一个人体感觉分析器.每一天,人都有一个感受值Ai,Ai越大,表示人感觉越舒适.在一段时间[i, j]内,人的舒适程度定义为[i, j]中最不舒服的那一天的感受值 * [i, j]中 ...

  6. 5.Linux文件管理相关命令(下)

    1.文件管理之:联网下载文件(wget.curl).文件上传与下载(rz.sz) 1.wget命令 1.CentOS7 系统最小化安装默认没有wget命令,需要进行安装 [root@oldboyedu ...

  7. Jenkins指定tag发布到k8s环境

    Jenkins指定tag发布到k8s环境 1.Jenkins配置一个Pipeline 工程 首先要安装插件:https://www.cnblogs.com/Dev0ps/p/9125232.html ...

  8. 百万年薪python之路 -- MySQL数据库之 Navicat工具和pymysql模块

    一. IDE工具介绍(Navicat) 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具,我们使用Navicat工具,这个工具本质上就是一个socket客户端,可视化的连接 ...

  9. 百万年薪python之路 -- 迭代器

    3.1 可迭代对象 3.1.1 可迭代对象定义 **在python中,但凡内部含有 _ _ iter_ _方法的对象,都是可迭代对象**. 3.1.2 查看对象内部方法 该对象内部含有什么方法除了看源 ...

  10. 01 Python简介、环境搭建及包管理(一)

    一.Python简介 1. Python的特点: 是一门动态.解释型.强类型语言 动态:在运行期间才做数据检查(不用提前声明变量)- 静态语音(C/Java):编译时检查数据类型(编码时需要声明变量类 ...