我想知道如果Python代碼可以像Javascript一樣壓縮/非人類可讀。我知道縮進在Python中很重要,它的核心理念是可讀性,但是在任何可能的情況下,都有允許壓縮Python代碼的方法嗎?順便說一句,Python 2.7。Python代碼可以像JavaScript一樣壓縮嗎?
回答
你可以在這裏採取幾種不同的方法。
Python實際上提供了以;
的形式提供縮小的機會。 Python中一個很少有人知道並且很少使用(幸好)的語法元素是如果使用;
,多個表達式可以寫在一行上。
例如:
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
文件,這仍然是正確的。 Python字節碼通常不會比用於生成它的源代碼小得多,並且大部分可以很容易地進行反向工程。不要認爲分發.pyc
將完全保護您的源代碼的錯誤。
編輯:如果你正在尋找打包這些作爲獨立的二進制可執行文件,你可能想看看cx_Freeze。它可能更接近你正在尋找的東西,如果不是不可能進行反向工程,則會更加困難。
+1可能在我正在尋找的球場。謝謝。 –
+1用於鏈接到cx凍結 – samrap
這不會混淆代碼(python可以很容易地從字節代碼進行逆向工程),並且不會節省所有空間。例如,編譯stdlib中的'Decimal'庫只會減少5%的空間。 – reem
不像通常是由瀏覽器執行,我們必須提供原始JavaScript源代碼的JavaScript。
您不必運送python代碼,就可以發佈已編譯的二進制文件。有很多工具可以完成這項工作,例如py2exe,Pyinstaller,cx_Freeze。客戶也受益,因爲他們不需要安裝Python,甚至不需要了解Python的任何信息。
儘管編譯的Python代碼比java,c,C++代碼更容易反編譯,但是比壓縮的源代碼更好。
- 1. 壓縮代碼或一個可能的代碼python的代碼
- 2. 壓縮Python代碼
- 3. JavaScript代碼壓縮
- 4. Flume代理 - 我可以指定像gzip或bz2一樣的壓縮嗎?
- 5. Imagine庫可以壓縮圖像嗎?
- 6. 可壓縮圖像庫嗎?
- 7. JavaScript可以像Windows一樣排序嗎?
- 8. 如何壓縮python代碼?
- 9. 壓縮JavaScript代碼 - ASP.NET
- 10. PHP代碼壓縮圖像?
- 11. 可以壓縮這個嗎?
- 12. 我可以壓縮Response.write嗎?
- 13. 這個CSS代碼可以被壓縮嗎?
- 14. 像Python一樣在Haskell中縮進嗎?
- 15. 像Python一樣,可以將Ruby編譯爲字節碼嗎?
- 16. Java壓縮一些代碼
- 17. perl可以像python一樣乘以一個字符串嗎?
- 18. 我可以縮短這段代碼嗎?
- 19. 這個代碼塊可以縮短嗎?
- 20. 我可以縮短我的代碼嗎?
- 21. zlib:壓縮流總是一樣的嗎?
- 22. 是否有一個JavaScript等效於像python一樣解壓縮序列?
- 23. 是否可以壓縮/縮小AppleScript代碼?
- 24. ImageResizer中是否有像PNY壓縮一樣的PNG壓縮?
- 25. JS縮小:壓縮代碼
- 26. 壓縮html代碼
- 27. QR代碼壓縮
- 28. 如何在Python中壓縮此代碼?
- 29. 如何解壓縮此javascript代碼?
- 30. 檢測出壓縮JavaScript代碼
(嵌套)列表解析/生成器表達式。以下是更多信息:http://c2.com/cgi/wiki?ObfuscatedPython – kren470
壓縮的目的是什麼? –
[Python代碼混淆]的可能重複(http://stackoverflow.com/questions/576963/python-code-obfuscation) – falsetru