Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 객체 지향 파일 시스템 경로(pathlib)

<시간/>

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를 배웠습니다.