我想製作一個自我複製的程序,它將創建一個新的Python文件,編寫代碼並運行它。以下是我想要的代碼是:Python 3.3.3:從Python腳本運行文件?
import os
num = 0
fileName = 'wrm' + str(num)
fileType = '.txt'
finalName = fileName + fileType
pyName = fileName + '.py'
f = open(finalName, 'w')
f.write("Whatever code I want to write")
f.close()
os.rename(finalName, pyName)
num = num + 1
# Here I need a command that runs the file, giving num as an 'argument'.
您可能想從[subprocess]開始(http://docs.python.org/3.4/library/subprocess.html) – thefourtheye
@thefourtheye您有沒有更簡單的方法?我不是很高級....我不能理解。 – Kabir
有可能有更好的方法來做你想做的。爲什麼不定義一個函數並調用它,而不是生成源代碼?如果你希望它在一個單獨的過程中,'multiprocessing'可以做到這一點。即使由於某種原因它必須是源代碼,「compile」或「exec」可能比創建和運行文件更好。即使它必須是一個文件,創建一個模塊並「導入」它來運行代碼可能會更好。如果你真的需要這樣做,這是可行的(正如我的答案所示),但它可能不是你的實際問題的正確答案。 – abarnert