파일 및 디렉토리에 대한 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')