Pythonスクリプト自体を変更するにはどうすればよいですか?どうすればPythonスクリプト自体を変更できますか?
それを煮詰めるために、私は、スクリプトは、それが
a = 1
b = 1
print a + b
# do something here such that the first line of this script reads a = 2
ようになり実行され、次の時間があるように、この
a = 0
b = 1
print a + b
# do something here such that the first line of this script reads a = 1
のようなPythonスクリプト(run.py
)を持っていると思いますこれはどんな方法でも可能ですか?スクリプトは外部リソースを使用することがあります。しかし、すべてを動作させるには、run.py
-fileを実行するだけです。
編集: 十分にはっきりしていないかもしれませんが、スクリプトはそれ自身を更新する必要があります。他のファイルは更新しないでください。確かに、スクリプトの隣に単純な設定ファイルを許可したら、この作業は簡単です。
回答:
それは実際には思ったよりもはるかに簡単です。 @khelwoodの提案はうまく動作し、スクリプトを開き、それ自身のコンテンツを書くことは全く問題がない。 @ Gerratのソリューションもうまく動作します。例えば
# -*- coding: utf-8 -*-
a = 0
b = 1
print a + b
content = []
with open(__file__,"r") as f:
for line in f:
content.append(line)
with open(__file__,"w") as f:
content[1] = "a = {n}\n".format(n=b)
content[2] = "b = {n}\n".format(n=a+b)
for i in range(len(content)):
f.write(content[i])
はい可能です。実際には、その目標を達成するためのいくつかの方法があります。 –
はい、可能ですが、なぜですか? – Jaco
あなたは 'open( 'run.py'、 'w')...'であなたのスクリプトを開いて、それを変更することができます。それはあなたが知りたかったものですか? – khelwood