私はこのようなものを書いています。Pythonの文字列への書き込みを続ける方法
script = """
import network
from machine import Pin, PWM
from time import sleep
"""
古いものを削除せずに後に書きたいと思います。私はどのように行いますか?
私はこのようなものを書いています。Pythonの文字列への書き込みを続ける方法
script = """
import network
from machine import Pin, PWM
from time import sleep
"""
古いものを削除せずに後に書きたいと思います。私はどのように行いますか?
あなたはtemplateにスクリプトを入れた後、値を入力でき
>>> script = """
... import network
... from machine import Pin, PWM
... from time import sleep
... """
>>> script += "\nimport os"
@KenanKazim文字列の連結は高価です。心がけてください。ループで連結する場合は '+ ='を使わず、代わりに 'str.join'を使用してください。 –
を、以下のような文字列に文字列を追加することができます。これは、生成されたスクリプトが中程度に複雑な場合でも、文字列を連結するよりも管理が簡単です。
# script.template
import network
from machine import Pin, PWM
from time import sleep
${xyz}
# script-generator.py
from string import Template
with open('script.template') as f:
template = Template(f.read()
contents = template.substitute(xyz='xyz')
with open('main.py', 'w') as f:
f.write(contents)
または別のテンプレートファイルは行き過ぎのように思える場合は、このようstr.format()
を使用することができます。
script = """\
import network
from machine import Pin, PWM
from time import sleep
{xyz}
"""
data = {'xyz': 'xyz'}
with open('main.py', 'w') as f:
f.write(script.format(**data))
この回答に間違いがありますか?実際の問題は文字列の連結に関する問題ではありません。おそらくいくつかの動的要素でスクリプトを生成することです。 –
これは素晴らしい方法ですが、最初のものはマイクロパイソンボードにライブラリがあまりないので動作しません.2番目の方法では十分です。ありがとう –
? –
一般に、任意の文字列で連結演算子( '+ =')を使うことができます: 'script + = '\ nprint(" Hello ")' '。しかし、Pythonコードを文字列に入れるのはちょっと変なことです...何をしようとしていますか? –
@DavidCain hahaあなたは正しいです。私はmicropython(esp8266ボード)に取り組んでいます。あなたがボードに電源を入れるとき。毎回同じコードを書く必要がありますが、 'main.py'を作成してコードを書いておけば、起動するたびに動作します。だから、私は文字列にそれを書いている、私は物事を追加し、その後main.py –