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

Python(shutil)의 고급 파일 작업

<시간/>

파일 및 디렉토리에 대한 hgh 수준 작업을 위한 여러 함수가 Python 표준 라이브러리의 shutil 모듈에 정의되어 있습니다.

복사()

이 함수는 파일을 동일하거나 다른 디렉토리의 지정된 파일에 복사합니다. 함수의 첫 번째 매개변수는 기존 파일의 문자열 표현입니다. 두 번째 인수는 결과 파일 또는 디렉토리의 이름입니다. 디렉토리라면 그 안에 같은 이름으로 파일을 대입한다. 원본 파일의 메타데이터는 유지되지 않습니다.

>>> import shutil
>>> shutil.copy("hello.py","newdir/")
'newdir/hello.py'

카피2()

이 함수는 소스 파일의 메타데이터를 유지한다는 점을 제외하고는 copy() 함수와 유사합니다. 예를 들어 결과 파일의 날짜 수정 속성은 원본 파일과 유사합니다.

>>> shutil.copy2('person.py', 'newdir/')
'newdir/person.py'

카피파일()

이 함수의 두 문자열 인수는 파일 이름을 나타냅니다. 원본 파일이 동일한 디렉터리에 지정된 이름으로 복사되었음을 의미합니다.

>>> shutil.copyfile('start.py', 'end.py')
'end.py'

copyfileobj()

이 함수의 매개변수는 파일을 나타내는 문자열이 아니라 파일 객체입니다. 파일 객체는 open() 함수로 얻습니다. 원본 파일에는 읽기 권한이 있어야 하고 결과 파일은 쓰기 권한으로 열어야 합니다.

>>> f1=open('hello.py','r')
>>> f2=open('python.py','w')
>>> shutil.copyfileobj('f1', 'f2')
>>> shutil.copyfileobj(f1, f2)

이동()

이 함수는 파일과 디렉토리를 한 디렉토리에서 다른 디렉토리로 재귀적으로 이동합니다.

>>> shutil.move('hello.py', 'newdir/')
'newdir/hello.py'

카피트리()

이 함수는 한 디렉토리의 파일과 하위 디렉토리를 다른 디렉토리로 재귀적으로 복사합니다. 두 매개변수의 이름은 문자열이어야 합니다. 두 번째 매개변수 이름의 디렉토리는 이전에 존재하지 않아야 합니다. 개별 파일을 복사하려면 내부적으로 copy2() 함수를 사용합니다.

>>> shutil.copytree('dir1','dir2')
'dir2'

rmtree()

이 함수는 지정된 디렉토리에 있는 파일과 하위 디렉토리를 제거합니다.

>>> shutil.rmtree('dir2')
>>> shutil.move('hello.py', 'newdir/')
'newdir/hello.py'

disk_usage()

이 함수는 주어진 디렉토리의 사용 통계를 검색합니다.

>>> shutil.disk_usage('c:\\python36\\dir1')
usage(total=245681352704, used=84932993024, free=160748359680)

어떤()

이 함수는 실행 파일의 경로를 반환합니다.

>>> shutil.which('calc')
'C:\\WINDOWS\\system32\\calc.EXE'

make_archive()

이 기능은 루트 디렉토리에 파일의 아카이브(zip 또는 tar)를 빌드합니다.

>>> root_dir='newdir'
>>> shutil.make_archive("newdirarch","zip",root_dir)
'C:\\python36\\newdirarch.zip'

get_archive_formats()

이 기능은 지원되는 모든 아카이브 형식을 제공합니다.

>>> shutil.get_archive_formats()
[('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), ('tar', 'uncompressed tar file'), ('xztar', "xz'ed tar-file"), ('zip', 'ZIP file')]

unpack_archive()

이 기능은 주어진 아카이브에서 파일을 추출합니다. 두 번째 매개변수는 파일을 추출할 디렉토리입니다. 지정하지 않으면 현재 디렉터리에서 압축을 풉니다.

>>> shutil.unpack_archive('newdirarch.zip','newdir')