자바 스크립트처럼 파이썬 코드를 압축 할 수 있는지/사람이 읽을 수 없는지 궁금합니다. 나는 들여 쓰기가 파이썬에서 중요하다는 것을 압니다. 핵심 철학은 가독성이지만, 압축 된 파이썬 코드를 허용하는 메소드가 있습니다. Python 2.7, 그런데.파이썬 코드를 Javascript처럼 압축 할 수 있습니까?
답변
여기에서 취할 수있는 몇 가지 방법이 있습니다.
파이썬은 사실 ;
형태로 축소를위한 기회를 제공합니다. 파이썬에서 약간 알려져 있고 거의 사용되지 않는 (다행스럽게도) 구문 적 요소는 ;
을 사용하면 한 줄에 여러 개의 표현식을 쓸 수 있다는 것입니다. 예를 들어
:
if x > y:
x += y
print y
else:
y += x
print x
가 압축 될 수 있습니다 :
if x>y:x+=y;print y;
else:y+=x;print x;
이 예의 톤이있다, 당신은 또한 주석을 제거하고, 원 사업자와 더 간단한 코드를 당황하게 할 수 있습니다. ;
은 많은 공백을 제거하지만 더 작은 최적화가 많이 있습니다.
이 작업을 수행하는 라이브러리의 예로는 here, here 또는 here을 참조하십시오.
아무 것도 복구되지 않을 정도로 코드를 완전히 혼란스럽게 만들지는 않습니다. 충분히 동기를 부여받은 사람이라면 문서화되지 않았더라도 소스 코드를 리버스 엔지니어링 할 수 있습니다.
.pyo
또는 .pyc
개의 파일 만 배포하는 경우에도 마찬가지입니다. 파이썬 바이트 코드는 일반적으로 소스 코드를 생성하는 데 사용되는 코드보다 작지 않으며, 대부분 리버스 엔지니어링이 가능합니다. .pyc
을 배포하는 것이 소스 코드를 완전히 안전하게한다고 생각하지 마십시오.
편집 : 독립 실행 형 바이너리 실행 파일로 패키지를 작성하려는 경우 cx_Freeze을 살펴볼 수 있습니다. 그것은 당신이 찾고있는 것에 더 가깝고 역 엔지니어링이 불가능하지는 않을지라도 훨씬 더 어려울 수 있습니다.
+1 내가 찾고 있던 야구장에있을 수 있습니다. 감사. –
cx Freeze에 연결하기위한 +1 – samrap
http://doughellmann.com/2009/01/pymotw-compileall.html 당시 삭제 소스 평 파일 일반적으로 브라우저에서 실행되고 우리가 원시 자바 스크립트 소스 코드를 제공해야합니다 자바 스크립트와는 달리
이것은 코드를 전혀 모호하지 않으며 (파이썬은 바이트 코드에서 쉽게 리버스 엔지니어링 될 수 있습니다) 많은 많은 공간을 절약하지 않습니다. 예를 들어, stdlib에서'Decimal' 라이브러리를 컴파일하면 단지 5 %만큼 공간이 줄어 듭니다. – reem
.
파이썬 코드를 제공 할 필요없이 컴파일 된 이진 파일을 제공 할 수 있습니다. 예를 들어 작업을 수행 할 수있는 도구가 많이 있습니다. py2exe, Pyinstaller, cx_Freeze. 클라이언트는 파이썬을 설치하거나 파이썬에 대해 알 필요가 없기 때문에 이익을 얻습니다.
컴파일 된 파이썬 코드는 압축 된 소스 코드보다 Java, C, C++ 코드에 비해 디 컴파일 된 것이 더 쉽지만 더 쉽습니다.
- 1. 어떻게이 코드를 더 압축 할 수 있습니까?
- 2. 이 코드를 어떻게 압축 할 수 있습니까?
- 3. 이 CSS 코드를 압축 할 수 있습니까?
- 4. antlr은 파이썬 코드를 생성 할 수 있습니까?
- 5. 어떻게 파이썬 코드를 빠르게 할 수 있습니까?
- 6. 이 jQuery 코드를 어떻게 압축 할 수 있습니까?
- 7. apk dalvik의 문자열 (압축) 코드를 대체 할 수 있습니까
- 8. Response.write를 압축 할 수 있습니까?
- 9. 입력으로 파이썬 코드를 영구적으로 바꿀 수 있습니까?
- 10. upx 압축 프로그램을 사용하여 상용 프로그램을 압축 할 수 있습니까?
- 11. 어떻게 펄에서 압축 된 압축 파일을 추출 할 수 있습니까?
- 12. lzw 압축/압축 해제를 병렬로 수행 할 수 있습니까?
- 13. AngularJs를 사용하여 압축 파일을 어떻게 압축 해제 할 수 있습니까?
- 14. Nativescript 앱이 압축 파일을 압축 해제 할 수 있습니까?
- 15. 이 파이썬 코드를 어떻게 ColdFusion 코드로 변환 할 수 있습니까?
- 16. 누군가이 간단한 파이썬 계산기 코드를 설명 할 수 있습니까?
- 17. 파이썬 : 아무도이 한 줄 코드를 설명 할 수 있습니까?
- 18. 파이썬 distutils가 CUDA 코드를 컴파일 할 수 있습니까?
- 19. 파이썬 3 HTTP 헤더가 코드를 파싱 할 수 있습니까?
- 20. 파이썬 -이 코드를 대략 나에게 설명 할 수 있습니까?
- 21. 무료 UML 클래스 디자이너는 파이썬 코드를 생성 할 수 있습니까?
- 22. 이 파이썬 코드를 어떻게 디버깅 할 수 있습니까?
- 23. 어떻게 파이썬 코드를 윈도우 DLL로 변환 할 수 있습니까?
- 24. 버튼의 onclick 이벤트가 파이썬 코드를 호출 할 수 있습니까?
- 25. 파이썬 파일 압축
- 26. roaslind.info에 파이썬 코드를 게시 할 수 없습니다.
- 27. 어쨌든이 SQL 쿼리를 "압축"할 수 있습니까?
- 28. 커밋을 node.js 스크립트에서 압축 할 수 있습니까?
- 29. Rails 배열을 "압축 해제"할 수 있습니까?
- 30. VC++ 런타임 힙을 압축 할 수 있습니까?
(중첩) 목록 내포/생성기 식. 자세한 내용은 다음과 같습니다. http://c2.com/cgi/wiki?ObfuscatedPython – kren470
압축의 목적은 무엇입니까? –
[Python 코드 난독 화] 가능한 복제본 (http://stackoverflow.com/questions/576963/python-code-obfuscation) – falsetru