python路径操作:pathlib 模块

 1 路径获取

将当前目录添加到模块的查询路径的列表sys.path

from pathlib import Path
import sys
cwd=Path.cwd()  #当前目录
print(sys.path)

FILE = Path(__file__).resolve()
ROOT = FILE.parents[0]  # 当前目录
if str(ROOT) not in sys.path:
    sys.path.append(str(ROOT))

print(sys.path)

获取当前工作目录

import pathlib

hh=pathlib.Path.cwd()
print(hh)

获取当前文件路径

import pathlib

# hh=pathlib.Path.cwd()
hh=pathlib.Path(__file__)
print(hh)

获取用户 home 目录

from pathlib import Path

hh=Path.home()
print(hh)

获取绝对路径

from pathlib import Path

hh=Path('./3.py').resolve()
print(hh)

获取文件属性

from pathlib import Path

file=Path('./3.py').resolve()
print(file)
print(file.stat())
print(file.stat().st_size)
print(file.stat().st_atime)
print(file.stat().st_ctime)
print(file.stat().st_mtime)

路径组成部分

  • .name 文件名,包含后缀名,如果是目录则获取目录名。
  • .stem 文件名,不包含后缀。
  • .suffix 后缀,比如 .txt.png
  • .parent 父级目录,相当于 cd ..
  • .anchor 锚,目录前面的部分 C:\ 或者 /
from pathlib import Path

file=Path('./3.py').resolve()
print(file.name)  #文件名
print(file.stem)  #文件名,不含后缀
print(file.suffix) #后缀
print(file.parent) #父级目录
print(file.anchor) #目录前面的部分

获取上一级目录

from pathlib import Path

file=Path('./3.py').resolve()
print(file.parent) #获取上级目录
print(list(file.parents))  #获取所有上级目录

子路径扫描

from pathlib import Path

cwd=Path.cwd()  #当前目录
file=[path for path in cwd.iterdir() if cwd.is_dir()]  #如果当前路径是目录则遍历当前目录
print(file)

查找目录下的指定文件 glob 

from pathlib import Path

cwd=Path.cwd()  #当前目录
file=list(cwd.glob('*.txt'))  #遍历当前目录下的所有txt文件
# file=list(cwd.rglob('*.txt'))  #rglob会递归所有子目录

print(file)

路径拼接

from pathlib import Path

cwd=Path.cwd()  #当前目录
# file=cwd / 'dir'/'file.txt'  #魔术方法
file=cwd.joinpath('dir','hh','file.txt')

print(file)

路径测试(判断)

from pathlib import Path

cwd=Path.cwd()  #当前目录
# file=cwd / 'dir'/'file.txt'  #魔术方法
file=cwd.joinpath('dir','hh','file.txt')

print(Path(file).is_file() ) #是否为文件
print(Path(file).is_dir())  #是否为目录
print(Path(file).exists())

print(file)

文件操作

from pathlib import Path

cwd=Path.cwd()  #当前目录
file=cwd / 'dir'/'file.txt'  #魔术方法
file=Path('hh.py').touch(exist_ok=True)  #创建文件

path=Path('hh').mkdir() #创建目录

# Path('hh').rmdir()  #删除目录

# file=Path('hh.py').unlink()  #删除文件

参考:

python3中pathlib库的Path类的使用_AManFromEarth的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/qq_40107571/article/details/131578479