专栏首页dogfeipython基础—pathlib模块

python基础—pathlib模块

有两个模块可用

  • os模块中的path
  • pathlib中的Path

这里说下pathlib模块,只要python版本大于3.4 都自带标准库pathlib

使用方法

from path lib import Path

目录操作

p = Path()   #当前目录   初始
p = Path(‘a’,’b’,’c’,’d/e’)    #当前目录下的a/b/c/d/e
p = Path(‘/etc’)    #根目录下的etc目录

路径拼接与分解

分解

同时拼接多个字符串

父目录

parents 父目录序列,索引0相当于/根目录

也可以像访问列表那样,通过输入索引来获取值

其他方法介绍

name  目录的最后一部分,可以是文件名,也可以是目录名
suffix  目录中最后一个部分的扩展名
stem   目录最后一个部分,没有后缀
suffixes   返回多个扩展名列表,可以对比下suffix来看
cwd()   返回当前目录
home()  返回当前价目录
is_dir()  是否是目录
is_file()  是否是普通文件
is_symlink()  是否是软链接
is_socker()   是否是socket文件
is_block_device()  是否是块设备
is_char_device()  是否是字符设备
is_absolute()   是否是绝对路径
exists() 目录或文件是否存在
rmdir() 删除空目录
touch(mode=0o666,exist_ok=True) 创建空文件
mkdir(mode=0o777,parents=False,exist_ok=False) 创建目录,parents=True时,相当于mkdir -p,False时则会报错FileNotFountError,exist_ok=True时,FileNotFoundError被忽略
iterdir() 迭代当前目录

练习

遍历目录,并判断文件类型,如果是目录再判断是否为空

from pathlib import Path


def yourdir(dir_cur):
    '''check file type'''
    for x in Path(dir_cur).parents[0].iterdir():
        print(x,end='\t')
        if x.is_dir():
            flag = False
            for _ in x.iterdir():   #如果目录为空,则无法迭代
                flag = True
                break
            print('dir','Not Empty' if flag else 'Empty',sep='\t')
        elif x.is_file():
            print('file')
        else:
            print('other file')

if __name__ == '__main__':
    yourdir('/Users/fei/tmp/ops')

这里我们遍历的上级目录下的所有文件。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 普通用户实现免密登陆

    dogfei
  • Fastdfs高可用集群搭建

    先来简单说一下这个架构图,前段是两台nginx + keepalived的高可用负载均衡群集,对后面两个tracker服务器做负载均衡,然后最后端是由fastd...

    dogfei
  • istio实现灰度发布的流量策略

    将流量从基础设施扩展中解耦,这样就可以让 Istio 提供各种独立于应用程序代码之外的流量管理功能。除了 A/B 测试的动态请求路由,逐步推出和金丝雀发布之外,...

    dogfei
  • hadoop各配置文件中各配置项详细说明

    3.1. 环境变量 hadoop-env.sh name value 含义 JAVA_HOME /usr/java/jdk1....

    闵开慧
  • pandas中的index对象详解

    在pandas中,Series和DataFrame对象是介绍的最多的,Index对象作为其构成的一部分,相关的介绍内容却比较少。对于Index对象而言,有以下两...

    生信修炼手册
  • 【Linux_Shell 脚本编程学习知识点、判断传入参数是否是 整数】

    梅花
  • DLUX组件扩展下篇-实践

    作者: M.S-Group.皮皮熊,M.S-Group组织主要成员之一,数通行业老兵,精通传统数通网络技术,SDN/NFV新技术的狂热拥护者!

    SDNLAB
  • linux的目录结构及文件基本操作

    sr
  • 【C++简明教程】C++基本语法

    在 C++ 中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。

    机器视觉CV
  • Linux好系统命令学习

    image - 简单来说touch 命令可以用来建立文件 文件不存在的情况下,也可以更改创建时间等等

    用户2196435

扫码关注云+社区

领取腾讯云代金券