>  기사  >  백엔드 개발  >  .pyc 파일이란 무엇입니까?

.pyc 파일이란 무엇입니까?

清浅
清浅원래의
2019-03-20 11:33:0030659검색

pyc 파일은 Python 파일을 컴파일하여 생성된 파일입니다. py 파일을 pyc 파일로 컴파일한 후 로드 속도가 빨라지고 코드 보안이 향상됩니다. pyc의 내용은 Python 버전과 관련이 있습니다. 버전마다 컴파일되는 pyc 파일이 다릅니다

.pyc 파일이란 무엇입니까?

[추천 과정: Python tutorial]

pyc 파일이란 무엇입니까

pyc는 바이너리 파일로, Python 파일을 컴파일하여 생성된 파일입니다. Python 파일을 pyc 파일로 변환한 후 로딩 속도가 향상되며, pyc도 크로스 플랫폼 바이트코드입니다. Python으로 가상화된 머신에서 실행되며, 이는 JAVA 또는 .NET 가상 머신의 개념과 유사합니다. pyc의 내용은 Python 버전과 관련이 있습니다. 버전에 따라 컴파일되는 pyc 파일이 다릅니다. 예를 들어 버전 2.5에서는 pyc 파일을 컴파일하지만 버전 2.4에서 컴파일된 Python은 실행할 수 없습니다.

py 파일에서 소스코드를 직접 볼 수 있기 때문에 일반적으로 개발된 상용 소프트웨어는 소스코드를 직접 유출할 수 없기 때문에 소스코드 보호를 위해 pyc 파일로 컴파일해야 합니다. 또한, pyc 파일은 디컴파일될 수도 있습니다. 다른 버전으로 컴파일된 pyc 파일은 주로 Python 소스 코드에 제공된 opcode를 기반으로 결정됩니다.

단일 pyc 파일 생성

Python은 py 파일을 pyc 파일로 컴파일하는 내장 클래스 라이브러리를 제공하는 좋은 언어입니다. 다음으로 단일 pyc 파일을 생성하는 방법을 설명하겠습니다

import py_compile
py_compile.compile(r'H:/game/test.py')
사용된 방법은 매우 간단합니다. 위에서 본 것처럼 아이들 상태에서 직접 py 파일을 pyc 파일로 컴파일할 수 있습니다(Windows 환경이라고 가정).

컴파일 함수 구문:

compile(file[, cfile[, dfile[, doraise]]])

file: 컴파일해야 하는 py 파일의 경로를 나타냅니다.

cfile: 컴파일된 pyc 파일의 이름과 경로를 나타냅니다. 기본값은 바로 뒤에 c 또는 o를 추가하는 것입니다. 파일 이름. o는 최적화된 바이트코드를 나타냅니다.

dfile: 오류 메시지가 저장된 경로를 나타냅니다.

doraise: ​​​​참 또는 거짓이라는 두 가지 값이 있습니다. 그렇지 않으면 파일 컴파일에 오류가 있으면 오류가 발생하며 기본적으로 예외 없이 sys.stderr에 표시됩니다.

일괄적으로 pyc 파일을 생성

일반적으로 프로젝트에서는 py 파일 하나만 컴파일하는 것이 아니라 전체 폴더를 다운로드해야 합니다. py 파일은 pyc 파일로 컴파일됩니다.

import compileall
compileall.compile_dir(r'H:/game')
게임 디렉터리에 있는 모든 py 파일을 의미합니다. 하위 디렉터리는 pyc 파일로 컴파일됩니다

compileall 함수 구문:

compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]])

dir: 컴파일해야 하는 폴더의 위치를 ​​나타냅니다. maxlevels: 컴파일해야 하는 하위 디렉터리의 수준 수를 나타냅니다. 기본값은 10레벨이며, 이는 10번째 레벨 하위 디렉터리의 py 파일이 기본적으로 pyc로 컴파일된다는 의미입니다.

ddir: 오류 메시지가 저장되는 경로를 나타냅니다.

force: true인 경우. pyc 파일로 강제 컴파일됩니다. pyc 파일이 최신인 경우에도 한 번만 컴파일해야 합니다.

rx: 제외할 수 있는 정규식을 나타냅니다. 조건 충족

quiet: True인 경우 정보는 컴파일 후 표준 출력에 인쇄되지 않습니다.

요약: 위 내용은 이 기사의 전체 내용입니다.

위 내용은 .pyc 파일이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.