⑴ 將.py 文件轉換為.pyc 文件的命令要在哪裡運行
在命令行輸入:python-mpy_compilemyFile.py就可以生成對應的pyc文件了。之後就可以直接執行pyc文件。pythonmyFile.pyc。
python的pyc文件是一種二進制文件,py文件變成pyc文件後,載入的速度有所提高,而且pyc是一種跨平台的位元組碼,是由python的虛擬機來執行的,這個是類似於java或者.NET的虛擬機的概念。
由於python程序的py文件很容易泄露源代碼,所以python可以編譯成保密的pyc文件。
⑵ python的程序可以編譯成二進制可執行文件么
python下編譯py成pyc和pyo
其實很簡單,
用
python -m py_compile file.py
python -m py_compile /root/src/{file1,file2}.py
編譯成pyc文件。
也可以寫份腳本來做這事:
Code:
import py_compile
py_compile.compile('path') //path是包括.py文件名的路徑
用
python -O -m py_compile file.py
編譯成pyo文件。
1.其中的 -m 相當於腳本中的import,這里的-m py_compile 相當於上面的 import py_compile
2.-O 如果改成 -OO 則是刪除相應的 pyo文件,具體幫助可以在控制台輸入 python -h 查看
========================
from:http://blogold.chinaunix.net/u3/93255/showart_1944929.html
什麼是pyc文件
pyc是一種二進制文件,是由py文件經過編譯後,生成的文件,是一種byte code,py文件變成pyc文件後,載入的速度有所提高,而且pyc是一種跨平台的位元組碼,是由python的虛擬機來執行的,這個是類似於JAVA或者.NET的虛擬機的概念。pyc的內容,是跟python的版本相關的,不同版本編譯後的pyc文件是不同的,2.5編譯的pyc文件,2.4版本的 python是無法執行的。
什麼是pyo文件
pyo是優化編譯後的程序 python -O 源文件即可將源程序編譯為pyo文件
什麼是pyd文件
pyd是python的動態鏈接庫。
為什麼需要pyc文件
這個需求太明顯了,因為py文件是可以直接看到源碼的,如果你是開發商業軟體的話,不可能把源碼也泄漏出去吧?所以就需要編譯為pyc後,再發布出去。當然,pyc文件也是可以反編譯的,不同版本編譯後的pyc文件是不同的,根據python源碼中提供的opcode,可以根據pyc文件反編譯出 py文件源碼,網上可以找到一個反編譯python2.3版本的pyc文件的工具,不過該工具從python2.4開始就要收費了,如果需要反編譯出新版本的pyc文件的話,就需要自己動手了(俺暫時還沒這能力^--^),不過你可以自己修改python的源代碼中的opcode文件,重新編譯 python,從而防止不法分子的破解。
生成單個pyc文件
python就是個好東西,它提供了內置的類庫來實現把py文件編譯為pyc文件,這個模塊就是 py_compile 模塊。
使用方法非常簡單,如下所示,直接在idle中,就可以把一個py文件編譯為pyc文件了。(假設在windows環境下)
import py_compile
py_compile.compile(r'H:\game\test.py')
compile函數原型:
compile(file[, cfile[, dfile[, doraise]]])
file 表示需要編譯的py文件的路徑
cfile 表示編譯後的pyc文件名稱和路徑,默認為直接在file文件名後加c 或者 o,o表示優化的位元組碼
from:http://www.cnblogs.com/dkblog/archive/2009/04/16/1980757.html
⑶ 如何用python生成和讀取二進制文件
withopen('a.jpg','rb')asf:
s=f.read()
withopen('b.exe','wb')asf:
f.write(s)
⑷ 怎樣將寫好的.py文件生成exe可執行文件
將寫好的.py文件生成exe可執行文件的方法
安裝好python,建議將python安裝在根目錄下。
去cxfreeze官網下載好對應的cx_freeeze版本。
正確安裝cx_freeze,看下圖
運行:cmd命令,查看cx_freeze是否安裝正確。如果出現了下圖的情況,說明環境變數設置不正確。請點擊下面的環境變數設置方法。
0環境變數設置方法
當然,設置完環境變數可能還是有問題,那麼這里就要設置路徑了,路徑設置在cxfreeze.bat文件中,cxfreeze.bat文件在:c:python34scripts文件夾下(如果你不是安裝在c盤,找到相應位置即可)看下圖,這里發現沒有cxfreeze.bat文件。
那麼要怎麼生成cxfreeze.bat文件呢。用python編譯一下cxfreeze-postinstall(二進制)文件即可,編譯後的文件如下圖
用記事本打開cxfreeze.bat文件。如果你不是裝在c盤,請將路徑改成你的安裝路徑。
這里以經典的hello world為例,看下圖。cd: c:python34scripts將目錄轉到cxfreeze所在目錄。cxfreeze c: esthello.py --target-dir c: est命令:cxfreeze c: esthello.py對hello.py進行編譯,--target-dir目標存儲目錄為c: est文件夾。生成過程相當長,如下圖。
看下test文件夾下,已經生成.exe文件。
點擊運行,如下圖(如果沒有在代碼中添加暫停的代碼,只能看到黑框一閃而過)代碼在後面一張圖,供參考。至些,.py文件成功轉成.exe可執行文件。
小剛SEO為你解答
⑸ Python有什麼模塊可以將文本文件轉化成二進制文件
英文就是ascii編碼嘛!
ord(num)顯示字元的編碼。
然後轉化編碼為二進制數不就可以了。
為了美化,可以每個數值添加幾個零成為8位二進制數,作為一個byte,空格隔開。
python自建有bin()函數,可是返回的字元是以'0b'開頭 # '0b000110'
可以使用下面的函數轉換
bin = lambda n : (n > 0) and (bin(n/2) + str(n%2)) or ''
bin(2) # 10
⑹ python文件後綴是什麼
python文件後綴總結:
(1).py:這通常是您編寫的輸入源代碼。
(2).py3:Python3腳本(Python3腳本通常以.py而不是.py3結尾,很少使用)。
(3).pyc:這是編譯好的位元組碼。如果導入一個模塊,python將生成一個*.pyc包含位元組碼的文件,以便再次導入它更容易(也更快)。
.pyc二進制文件可以反編譯成.py文件,反編譯軟體叫Easy Python Decompiler。
(4).pyo:這是在優化(-O)時創建的*.pyc文件,從Python3.5開始,Python將只使用.pyc而不是.pyo和.pyc。
(5).pyd:這基本上是一個Windows DLL文件。
(6).pyi:MyPy存根,存根文件(PEP 484)。
(7).pyw:用pythonw.exe執行的Windows的Python腳本。
(8).pyx:將Cython src轉換為C/C++。
(9).pyz:Python腳本歸檔(PEP 441)(這是一個包含標准Python腳本頭之後的二進制形式的壓縮Python腳本(ZIP)的腳本)。
(10).pywz:用於MS-Windows的Python腳本歸檔(PEP 441)(這是一個包含標准Python腳本頭之後的二進制形式的壓縮 Python腳本(ZIP)的腳本)。
(11).py [cod]:.gitignore中的通配符表示該文件可能是.pyc,.pyo或.pyd。
(12).rpy:包含應用程序或框架特定功能的RPython腳本或Python腳本。
(13).pyde:處理使用的Python腳本。
(14).pyp:Py4D Python插件。
(15).pyt:Python聲明文件。
眾多python培訓視頻,盡在python學習網,歡迎在線學習!
⑺ python編程後如何編譯成小程序
將python代碼編譯成exe文件的方法:
1、先在電腦上安裝pyinstaller。
2、然後到指定目錄下使用pyinstaller來將py文件編譯成exe即可。
⑻ python 有沒有預編譯文本
1.簡介
相對於py文件來說,編譯成pyc和pyo本質上和py沒有太大區別,只是對於這個模塊的載入速度提高了,並沒有提高代碼的執行速度,通常情況下不用主動去編譯pyc文件,除非需要商業提供,防止源代碼泄露。
(1)什麼是pyc文件
pyc是一種二進制文件,是由py文件經過編譯後,生成的文件,是一種byte code,py文件變成pyc文件後,載入的速度有所提高,而且pyc是一種跨平台的位元組碼,是由Python的虛擬機來執行的,這個是類似於Java虛擬機的概念。pyc的內容,是跟python的版本相關的,不同版本編譯後的pyc文件是不同的,2.5編譯的pyc文件,2.4版本的python是無法執行的。
(2)什麼是pyo文件
pyo是優化編譯後的程序 python -O 源文件即可將源程序編譯為pyo文件
把需要的模塊編譯成pyo文件可以減少容量
2.反編譯
將python文件編譯為pyc文件(使用compileall 命令),再刪除源代碼。
(該文件類似於java中的class文件,但是我們使用的2.7版本的python,目前沒有
免費版的反編譯工具,所以目前要破解不是很容易,所以可以不必再做混淆)
(1)命令行編譯方法:
python -m compileall src/
echo compile finished...
rm -rf src/*.py
編譯成pyo的話:
就是在控制台執行 python -O -m py_compile file.py
(2)python程序編譯方法:
如果需要特殊的單獨編譯,則只需要使用py_complie這個模塊就行了,如下
import py_compile
py_compile.compile(r'H:\game\test.py')
反編譯工具:
1.uncompyle2 只能編譯2.7
反編譯Demo代碼:
import os
import sys
def displayFile(file):
unPath= sys.executable
unPath=unPath[ 0 : unPath.rfind( os.sep ) ]
newname = file[0:file.rfind('.')] + '.py'
command = "python -u "+unPath+"\scripts\uncompyle2 " + file + ">" + newname
try:
os.system(command)
except e:
print file
if __name__ == '__main__':
#print unPath
print 'init'
displayFile('E:\\test.pyc')
print 'finished'
2.zrax/pycdc 可以編譯3.0
⑼ python可以編譯成Linux下的二進制文件么
在處理一個回車符的文件和二進制中國的窗口,是有區別的:當寫入文本,每遇到一個'\ N'換行,而被替換'\ r \ N'回車換行,然後寫入該文件;當文本被讀取時,它面臨著一個'\ r \'回車換行,它會被轉換到反'\'換行符。二進制文件沒有這樣的轉換。但是,在與中國的Linux二進制文件處理本文檔中有使用的fopen(「a.txt中」,「R」)(公開文本)的fopen和(「a.txt中」兩者之間沒有差別,例如,在Linux中中,兩個函數「RB」)(以二進制模式打開)是相同的。
⑽ .py文件是什麼
.py文件是python的腳本文件。
Python在執行時,首先會將.py文件中的源代碼編譯成Python的byte code(位元組碼),然後再由Python Virtual Machine(Python虛擬機)來執行這些編譯好的byte code。這種機制的基本思想跟Java,.NET是一致的。
然而,Python Virtual Machine與Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一種更高級的Virtual Machine。
這里的高級並不是通常意義上的高級,不是說Python的Virtual Machine比Java或.NET的功能更強大,而是說和Java 或.NET相比,Python的Virtual Machine距離真實機器的距離更遠。
或者可以這么說,Python的Virtual Machine是一種抽象層次更高的Virtual Machine。基於C的Python編譯出的位元組碼文件,通常是.pyc格式。
(10)python將py文件編譯成二進制文件擴展閱讀:
python的優點:
1、簡單:Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣。它使你能夠專注於解決問題而不是去搞明白語言本身。
2、易學:Python極其容易上手,因為Python有極其簡單的說明文檔。
3、速度快:Python 的底層是用 C 語言寫的,很多標准庫和第三方庫也都是用 C 寫的,運行速度非常快。
4、免費、開源:Python是FLOSS(自由/開放源碼軟體)之一。使用者可以自由地發布這個軟體的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用於新的自由軟體中。FLOSS是基於一個團體分享知識的概念。
5、高層語言:用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內存一類的底層細節。
6、可移植性:由於它的開源本質,Python已經被移植在許多平台上(經過改動使它能夠工作在不同平台上)。
7、解釋性:一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉換到一個你的計算機使用的語言(二進制代碼,即0和1)。這個過程通過編譯器和不同的標記、選項完成。
運行程序的時候,連接/轉載器軟體把你的程序從硬碟復制到內存中並且運行。而Python語言寫的程序不需要編譯成二進制代碼。你可以直接從源代碼運行 程序。
在計算機內部,Python解釋器把源代碼轉換成稱為位元組碼的中間形式,然後再把它翻譯成計算機使用的機器語言並運行。這使得使用Python更加簡單。也使得Python程序更加易於移植。
8、面向對象:Python既支持面向過程的編程也支持面向對象的編程。在「面向過程」的語言中,程序是由過程或僅僅是可重用代碼的函數構建起來的。在「面向對象」的語言中,程序是由數據和功能組合而成的對象構建起來的。
9、可擴展性:如果需要一段關鍵代碼運行得更快或者希望某些演算法不公開,可以部分程序用C或C++編寫,然後在Python程序中使用它們。
10、可嵌入性:可以把Python嵌入C/C++程序,從而向程序用戶提供腳本功能。
11、豐富的庫:Python標准庫確實很龐大。它可以幫助處理各種工作,包括正則表達式、文檔生成、單元測試、線程、資料庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其他與系統有關的操作。
12、規范的代碼:Python採用強制縮進的方式使得代碼具有較好可讀性。而Python語言寫的程序不需要編譯成二進制代碼。