pathlib는 Python 문서에 제공된 정의가 객체 지향 파일 시스템 경로입니다. pathlib는 다양한 운영 체제에 적용할 수 있는 의미 체계와 함께 파일 시스템 경로를 나타내는 클래스를 제공합니다.
경로 클래스는 I/O 없이 순수한 계산 작업을 제공하는 순수 경로와 순수 경로를 상속하지만 I/O 작업도 제공하는 구체적인 경로로 구분됩니다.
Path.iterdir() # 해당 디렉토리의 하위 디렉토리나 파일을 탐색합니다.
Path.is_dir() # 디렉토리인지 확인
Path.glob() # 필터 디렉터리(생성기로 돌아가기)
Path.resolve() # 절대 경로 반환
Path.exists() # 경로가 존재하는지 확인 존재합니다
Path.open() # 파일 열기(지원)
unlink() # 파일 또는 디렉터리 삭제(디렉토리가 비어 있지 않으며 예외가 발생함)
parts # 분할 경로는 os.path.split()과 유사하지만 튜플을 반환합니다.
drive # 드라이브 이름을 반환
root # 경로의 루트 디렉터리를 반환
anchor # 드라이브로 돌아갈지 아니면 루트로 돌아갈지 자동으로 결정
parents # 모든 상위 디렉터리 목록 반환
with_name () # 경로 이름 변경, 마지막 레벨 경로 이름 변경
with_suffix() # 경로 접미사 변경
joinpath () # 경로에 가입하십시오. PATHINATIAT.RELATIVE_TO
() # 상대 경로 계산5, 테스트 경로
Path.is_dir
() # 파일인가요?Path.is_absolute
() # 절대 경로인가요? .6. 다른 방법
Path.cwd
() # 현재 디렉터리의 경로 개체를 반환합니다.home
() # 현재 사용자의 홈 경로 객체를 반환합니다Path.
Path.
Path.
Path.
Path.
3. os와 pathlib.Path의 차이점
1. 현재 파일 경로 가져오기
os 모듈을 사용할 때getcwd()
메서드를 통해 현재 파일 경로를 직접 가져올 수 있습니다.os를 사용할 수 있습니다. .path.dirname( __file__)
Python은 Pycharm에서 제공하는 __file__ 개념을 제공하지 않기 때문에 현재 파일 경로를 가져옵니다. import os print(os.getcwd()) # C:\Users\bobin.yang\PycharmProjects\untitled print(os.path.dirname(__file__)) # C:/Users/bobin.yang/PycharmProjects/untitled
Path를 사용할 수 있습니다. cwd()
메소드 현재 파일 경로를 직접 얻으려면 시도해 볼 수 있습니다: import pathlib print(pathlib.Path.cwd()) # C:\Users\bobin.yang\PycharmProjects\untitled
ctrl+왼쪽 마우스 버튼
을 사용하고 클릭하여 볼 수 있습니다. 이 방법에 대한 자세한 소개. cwd()
메서드는 os 라이브러리의 getcwd()
메서드를 캡슐화한 것일 뿐이지만 더 나빠 보입니다. 공식입니다. 의 출시는 확실히 허구가 아닙니다. 이제 그 비밀을 함께 공개하겠습니다. 2. 상위/상위 디렉토리 가져오기 위의 경우는 pashlib 라이브러리의 사용을 더 복잡하게 만드는 것 같습니다. 비밀을 밝히기 위해서는 pathlib 라이브러리의 구성을 함께 느끼고 pathlib가 어떻게 작동하는지 이해할 수 있습니다. 도서관은 우리에게 편리함을 가져다줍니다. os 모듈에서 특정 파일의 상위 디렉터리를 가져오려면 os 모듈은 다음과 같이 작성됩니다. import os print(os.path.dirname(os.path.dirname(os.getcwd()))) # C:\PycharmProjects
getcwd()
方法可以直接获取当前文件路径在 Pycharm 中,可以使用 os.path.dirname(__file__)
获取当前文件路径,因为 Python 并没有提供 __file__ 这个概念,他是 Pycharm 提供的:
import pathlib print(pathlib.Path.cwd().parent) # C:\PycharmProjects
在 pathlib 模块中,通过 Path.cwd()
方法可以直接获取当前文件路径,我们可以动手试一试:
import os print(os.path.join(os.path.dirname(os.getcwd()), '路径拼接', '真麻烦')) # C:\PycharmProjects\路径拼接\真麻烦
通过 Pycharm 我们可以使用快捷键 ctrl+鼠标左键
点击查看该方法的详细介绍。
从上图中可以看出 cwd()
方法不过是对 os 库中 getcwd()
方法进行了封装,看起来好像更差劲了,但是官方的推出一定不是子虚乌有的,现在让我们一起来揭秘。
上面那个案例仿佛让 pashlib 库的使用变得更加复杂了,为了揭秘,我们只能一同感受下 pathlib 库的构成,了解 pathlib 库如何带给我们便捷。
在 os 模块中,如果我们要获取某一个文件的父目录,os 模块的写法为:
# /Users/mac/test.py import os paths = ('路径拼接', '真麻烦') print(pathlib.Path.cwd().parent.joinpath(*paths)) # C:\PycharmProjects\路径拼接\真麻烦
在 pathlib 库中,可以通过这样简洁方法实现:
import pathlib print(pathlib.PurePath(__file__).match('*.py')) # True
并且,如果你需要找他爷爷,是不是再来一个 .parent
就行了。相比较 os 模块的 os.path.dirname()
pathlib 라이브러리에서는 다음과 같은 간단한 방법으로 달성할 수 있습니다.
import pathlib os_path = os.path.dirname(__file__) print(os_path) # C:/PycharmProjects/untitled pure_path = pathlib.PurePath(__file__) print(pure_path) # C:\PycharmProjects\untitled\run.py print(type(pure_path)) # <class 'pathlib.PureWindowsPath'> print(pathlib.PurePath(__file__).match('*.py')) # True
.parent
를 하나 더 추가하면 될까요? os 모듈의 os.path.dirname()
과 비교하면 너무 편리한가요? 3. 경로 접합
상위 디렉터리에서 경로를 접합하려면 os 모듈을 통해 다음과 같은 긴 코드 문자열을 작성해야 할 수도 있습니다.
rrreee🎜pathlib를 사용할 때 그 편리함을 함께 경험해 보세요. 에! 🎜# /Users/mac/test.py import os paths = ('路径拼接', '真麻烦') print(pathlib.Path.cwd().parent.joinpath(*paths)) # C:\PycharmProjects\路径拼接\真麻烦
通过 pathlib 库拼接路径,你可以很方便的调节他在他祖辈的位置,妙哉。
pathlib 封装了很多的 os.path 中的方法,如下所示:
os.path.expanduser() --> pathlib.Path.home()
os.path.expanduser() --> pathlib.Path.expanduser()
os.stat() --> pathlib.Path.stat()
os.chmod() --> pathlib.Path.chmod()
上一节的操作大部分都是通过 pathlib 库中的 Path 实现,其实他还有一个更加高大上的模块,也就是我们这一节的主角:pathlib.PurePath
。
PurePath 是一个纯路径对象,纯路径对象提供了实际上不访问文件系统的路径处理操作。
有三种方法可以访问这些类,我们也称之为 flavor 。
下面让我们来实现一个神奇的功能,判断当前的路径下是否有符合'*.py'规则的文件。
import pathlib print(pathlib.PurePath(__file__).match('*.py')) # True
输出为什么会是 True
呢?因为当前文件夹下不就有一个 test.py
吗?
看见 pathlib.PurePath 后面跟着 match,那是不是能说明他是个对象,而不是一个单纯的路径字符串,因此我们可以试着打印 pathlib.PurePath 看一看。
import pathlib os_path = os.path.dirname(__file__) print(os_path) # C:/PycharmProjects/untitled pure_path = pathlib.PurePath(__file__) print(pure_path) # C:\PycharmProjects\untitled\run.py print(type(pure_path)) # <class 'pathlib.PureWindowsPath'> print(pathlib.PurePath(__file__).match('*.py')) # True
通过打印 os.path 获取当前路径的结果,得到一个路径字符串;而通过 pathlib.PurePath 则获得了一个 PurePosixPath 对象,并且由此得到的路径包括了当前文件 run.py。
위 내용은 Python 파일 시스템 모듈 pathlib 라이브러리를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!