Python 路径操作

3.4版本之前os.path模块

3.4版本之后pathlib.Path模块

  1. from pathlib import Path
  2. p = path()
  3. p = p.joinpath('/data/app/app/sftp-password.txt') # 在当前目录后拼接字符串
  4. # 路径拼接
  5. * joinpath
  6. * 操作符/
  7. Path对象/Path对象
  8. Path对象/字符串 或者 字符串/Path对象/Path对象
  9. p = p / 'a' / 'b'
  10. # 路径分解
  11. parts属性,元组方式返回路径中的每一个部分
  12. p.parts
  13. # 获取父目录
  14. p.parent # 获取除目录最后一个部分外的所有路径
  15. list(p.parents) # 依次获取父目录级别
  16. # 获取目录中最后一个部分
  17. p.name
  18. # 获取目录中最后一个部分的扩展名
  19. p.suffix # .jpg
  20. # 获取目录中最后一个部分,没有扩展名
  21. p.stem
  22. # 返回当前工作目录
  23. p.cwd()
  24. # 返回当前家目录
  25. p.home()
  26. # 是否是目录
  27. p.is_dir()
  28. # 是否是文件
  29. p.is_file()
  30. # 是否是socket文件
  31. p.is_socket()
  32. # 是否是绝对路径
  33. p.is_absolute()
  34. # 目录或者文件是否存在
  35. p.exists()
  36. # 删除空目录,如果目录不为空则报错,pathlib没有提供判断目录为空的方法
  37. p.rmdir()
  38. # 创建文件,创建的文件名即p对象的name
  39. p = Path('/tmp/mysql.tar.gz')
  40. p.touch(mode=0o666, exist_ok=True) # 文件名为/tmp/mysql.tar.gz
  41. p = Path('/tmp')
  42. p.joinpath('test.jpg').touch(mode=0o666, exist_ok=True) # 文件名为/tmp/test.jpg
  43. # 将路径转化成uri
  44. p.as_uri() # 返回'file:///data/app/app/test'
  45. # 创建目录
  46. p = p / 'test' / 'test01' / 'test02'
  47. p.mkdir(parents=True) # 父目录不存在则创建
  48. # 迭代当前目录下
  49. p.iterdir()
  50. # 通配符
  51. p.glob('test*') # 返回生成器对象
  52. # 匹配match
  53. p = Path('a/b.py')
  54. p.match('*.py')