2011-08-08 52 views

回答

3

您可能會對tempfile module以及base64execfile感興趣。

順便說一句,你可能想提供一些關於你想要完成的更多細節。這聽起來像是一個好主意,不必要的工作,或者兩者兼而有之。

+0

我想執行一個小的可執行文件會從字符串解碼......我想它在臨時文件解碼爲一個文件,然後運行它可能...你給我一個例子? – Shady

+0

'execfile'用於執行Python腳本,而不是一個小的(Windows)可執行文件。 – martineau

+1

@martineau啊。那不是我對這個問題的解讀(我說這聽起來像個不好的主意,並要求澄清)的原因之一。我以爲OP要求將base64編碼的字符串轉換爲Python腳本,將其存儲在臨時文件中並執行。如果相反OP有base64編碼的二進制文件,他應該嘗試[leoluk's answer](http://stackoverflow.com/questions/6986273/how-create-a-tempory-file-from-base64-encoded而是用字符串/ 6987138#6987138)。 –

1

解碼字符串(pydoc base64);創建一個臨時文件(pydoc tempfile),寫入字符串;並使用任意數量的os函數來執行它(可能是pydoc os.popen)。

0

你有Windows標籤,所以我會相應地回答。

除了其他有效的可能性之外,您還需要在小寫字符前加下劃線,並用連字符替換斜槓 ,以使Base64序列成爲有效的文件名以及唯一的。

3

事情是這樣的:

import tempfile 
import subprocess 

with tempfile.TemporaryFile(suffix='.exe', delete=False) as tmp: 
    tmp.write(EMBEDDED_EXECUTABLE.decode('base64')) 
    tmp.close() 
    subprocess.Popen(tmp.name) 
相關問題