pathlib 모듈은 파일 시스템 경로를 처리하는 객체 지향 접근 방식을 제공합니다. 이 모듈은 또한 다양한 운영 체제에 적합한 기능을 제공합니다. 이 모듈에 정의된 클래스는 순수 경로 유형과 구체적 경로 유형의 두 가지 유형이 있습니다. 순수 경로는 순수한 계산 작업만 수행할 수 있지만 구체적인 경로는 I/O 작업도 수행할 수 있습니다.
pathlib 모듈은 다음 클래스를 정의합니다 -
시니어 번호 | 모듈 및 설명 |
---|---|
1 | 퓨어패스 다른 모든 클래스의 기본 클래스 |
2 | 경로 PurePath에서 서브클래싱됩니다. 이것은 파일 시스템 경로를 나타내는 구체적인 클래스입니다. |
3 | PosixPath 비 Windows OS용 경로 하위 클래스 |
4 | Windows 경로 Windows 시스템용 경로 하위 클래스 |
5 | PurePosixPath 비 Windows 시스템을 위한 PurePath 서브클래스 |
6 | 순수 Windows 경로 Windows 시스템용 PurePath 서브클래스 |
Path 클래스의 인스턴스가 생성되면 시스템에 따라 WindowsPath 또는 PosixPath를 자동으로 반환합니다.
WindowsPath 또는 PosixPath 개체도 직접 만들 수 있지만 동일한 유형의 시스템에서만 만들 수는 없습니다.
경로 개체를 만들려면 다음 구문을 사용하십시오.
>>> from pathlib import * >>> p = Path(".") >>> type(p) <class 'pathlib.WindowsPath'>
위의 문장은 Windows 시스템에서 실행되기 때문에 WindowsPath 객체가 생성되는 것을 볼 수 있습니다. "." 현재 디렉토리를 참조합니다.
Path 클래스에는 다음과 같은 메서드가 정의되어 있습니다.
절대() - Path 개체의 절대 버전을 반환합니다.
>>> p.absolute() WindowsPath('C:/python36')
존재() - 주어진 경로가 존재하는 경우 true를 반환
>>> p = Path("mydir") >>> p.exists() False >>> p = Path("etc") >>> p.exists() True
is_dir() - 경로가 디렉토리인 경우 true를 반환
>>> p = Path("etc") >>> p.is_dir() True >>> p = Path("test.py") >>> p.is_dir() False
is_file() - 경로가 파일에 해당하면 true를 반환
>>> p = Path("tmp.py") >>> p.is_file() True >>> p = Path("etc") >>> p.is_file() False
iterdir() - 경로에 해당하는 디렉토리에 파일 이름을 생성하는 생성기를 반환합니다.
>>> p = Path("libs") >>> for f in p.iterdir(): print (f) libs\libpython36.a libs\python3.lib libs\python36.lib libs\_tkinter.lib
mkdir() - 경로가 이미 존재하지 않는 경우 경로를 나타내는 새 디렉토리를 생성합니다.
>>> p = Path("mydir") >>> p.mkdir() >>> p.absolute() WindowsPath('C:/python36/mydir') >>> p = Path("codes") >>> p.mkdir() FileExistsError: [WinError 183] Cannot create a file when that file already exists: 'codes'
열기() - Path 개체가 나타내는 파일을 열고 파일 개체를 반환합니다. 내장된 open() 함수와 유사합니다.
>>> p = Path("Hello.py") >>> f = p.open() >>> f.readline() 'Hello Python'
read_bytes() - 바이너리 모드에서 파일을 열고 바이너리 형식으로 데이터를 읽고 같은 파일을 닫습니다.
>>> p = Path("Hello.py") >>> f.read_bytes() >>> p.read_bytes() b'Hello Python'
read_text() − 파일을 텍스트 모드에서 열어 텍스트를 읽고 나중에 닫습니다.
>>> p = Path("Hello.py") >>> p.read_text() 'Hello Python'
write_text() - 파일을 열고 텍스트를 쓰고 닫습니다.
>>> p = Path("Hello.py") >>> p.write_text("Hello how are you?") 18
write_bytes() − 바이너리 데이터를 파일에 쓰고 닫습니다.
>>> p = Path("Hello.py") >>> p.write_bytes(b'I am fine') 9
stat() - 이 경로에 대한 정보를 반환합니다.
>>> p.stat() os.stat_result(st_mode = 16895, st_ino = 9570149208167477, st_dev = 1526259762, st_nlink = 1, st_uid = 0, st_gid = 0, st_size = 0, st_atime = 1543085915, st_mtime = 1543085915, st_ctime = 1543085915)
rmdir() - Path 개체에 해당하는 디렉터리를 제거합니다.
>>> p = Path("mydir") >>> p.rmdir()
경로.cwd() − Path 클래스의 클래스 메소드입니다. 현재 작업 디렉토리의 경로를 반환
>>> Path.cwd() WindowsPath('C:/python36')
Path.home() − Path 클래스의 클래스 메소드입니다. 홈 디렉토리의 경로를 반환
>>> Path.home() WindowsPath('C:/Users/acer')
'/' 연산자는 경로를 만드는 데 사용됩니다.
>>> p = Path(".") >>> p1 = p/'codes' >>> p1.absolute() WindowsPath('C:/python36/codes')
이 기사에서 우리는 pathlib 모듈에 정의된 파일 시스템 객체에 대한 객체 지향 API를 배웠습니다.