• 路径操作


    python的OS模块

    • path属性os模块——from os import path

    常用方法

    from os import path
    
    p = path join('m','n')
    p1 = path.join('e:/a/b','c')
    print(type(p),p)
    print(type(p1),p1)
    • os.path.exists§->True|False #判断字符串路径或文件是否存在
    • os.path.split§->(路径,基名) #切割路径字符串,获取路径和基名
    • os.path.dirname§->str路径 #获取路径字符串的路径
    • os.path.basename§->str基名 #获取路径字符串的基名
    • os.path.relpath(p )->str路径 #获取文件路径的相对路径
    • os.path.abspath§->str # 获取路径字符串的绝对路径
      • os.path.abspath("") 和 os.path.abspath(".") 表示当前路径的绝对路径
    • os.path.splitdrive§->(磁盘名,路径) #windows系统上使用,获取路径所在磁盘的盘符
      • path.splitdrive(“c:/a/b/text.py”) #(‘c:’, ‘/a/b/text.py’)
    • os.path.samefile(src,dst) #判断两个路径是否指向同一个文件
    • os.path.normpath(p )->os.path #正常化路径,取消双斜杠
    • os.path.normcase(p )->os.path #将路径大小写规范。
      • 如果是linux系统或者Mac OS系统,不做处理
      • 如果是windows系统上,将路径全部转换成小写,并将"/“转成”\"
    • 其他相关方法可以查看python API
      • os.path.getatime(path)
      • os.path.getsize(path) #获取文件大小
      • os.path.isabs(path) #是否是绝对路径
      • os.path.isdir(path) #判断路径是否是当前路径

    pathlib模块的path对象

    初始化示例
    from
    pathlib import Path p = Path() #当前目录 Path(.) Path("")都是表示当前目录 p = Path('a','b','c/d') #当前目录下的a/b/c/d p = Path("/etc") #表示跟下的etc目录
    • Path(*pathsegments)->PosixPath|WindowsPath 根据路径创建Path对象
    1. pathsegments 路径字符串
    2. PosixPath 在linux下调用会返回PosixPath对象
    3. WindowsPath 在windows下调用会返回WindowsPath对象

    path对象拼接


    str / path ==>path

    path / path ==>path

    path / str ==>path

    str / str ==>报错

    python中的全局方法

    • cwd()->Path #获取当前工作路径
    • from pathlib import Path
      p = Path("d:/a/b")
      print(Path.cwd(),p.cwd()) 

    python中的判断方法

    • exists() #目录或文件是否存在
    • is_dir() #是否是目录,目录存在返回True
    • is_file() #是否是普通文件,文件存在返回True。
    • is_fifo() #是否是FiFO文件,如果文件路径是链接文件,链接文件指向FIFO文件,并未断开,则为True,否则为False
    • is_symlink() #是否是软连接
    • is_block_device() #是否是块设备
    • is_char_device() #是否是字符设备
    • is_absolute() #是否是绝对路径

    绝对路径path

    • resolve() #返回一个新的路径,这个路径就是当前Path对象的绝对路径,如果是软连接则直接被解析。注意无法识别windows的快捷方式。
    • absolute() #获取绝对路径,也无法识别windows的快捷方式

    文件操作(Path)

    chmod(mode) #根改路径指向文件的权限,类似于os.chmod()

    • mode int类型,可以使用8进制描述。例如0o775
    • 注意,如果指向的是符号链接文件,这会跟进符号链接文件所指向的文件
    • lchmod(mode) #针对符号链接文件,只改变符号链接文件的权限,而不是跟进符号链接所指向的文件。
    • touch(mode=0o666,exit_ok=True) #创建文件
      • mode #模式,默认值为0o666 表示创建文件。
      • exit_ok #是否忽略文件存在异常。默认值为True
        • True #如果创建的文件已经存在,就只修改文件的时间戳。不抛出异常
        • False #如果文件已经存在,抛出FileExistsError异常
    • unlink() #删除文件或符号链接,如果Path指向一个目录会调用Path.rmdir()
    • rmdir() #删除空目录,非空目录会报错。注意,Path对象没有提供判断目录为空的方法
    • 简单示例,判断目录为空的方法
      from pathlib import Path
      def isNoneDir(dirname:Path):
          try:
              stat = dirname.lstat()
          except Exception:
              return Exception
          else:
              if dirname.is_dir():
                  for i in dirname.iterdir():
                      break
                  else:
                      return True
              return False
      p = Path("")
      for i in p.iterdir():
          print(i.name,"		空目录" if isNoneDir(i) else "")

    目录结构(path)

    iterdir() #迭代当前目录,不递归。

    • 简单示例 --输出当前路径下哪些是文件,哪些是目录
    • from pathlib import Path
      arrdir = {*Path("").iterdir()} #获取当前目录下的所有文件
      mdir = {i for i in filter(lambda p: p.is_dir() ,arrdir)} #取出为目录的Path对象
      text = arrdir - mdir   #取出非目录Path对象
      print("目录:",[*map(lambda x:x.name,mdir)])
      print("文件:",[*map(lambda x:x.name,text)])
  • 相关阅读:
    oracle 将表名和字段名变为大写
    第三方应用软件提权
    数据库提权
    mybatis spring代理开发
    mybatis整合spring原始dao开发
    mybatis和spring整合的jar包准备
    mybatis整合ehcache(分布式缓存框架)
    mybatis 查询缓存
    mybatis 延迟加载
    mybatis 高级映射
  • 原文地址:https://www.cnblogs.com/fjjj/p/12925389.html
Copyright © 2020-2023  润新知