1

私は使用しようとしてf.writeいますが、それが最善の方法かどうかはわかりませんが、いくつかの例を見ました。ここで私がやろうとしていることは、次の行を含むファイルがあります。

parallel (
{
ignore(FAILURE) {
                          build( "Deploy",  BUILDFILE: "/path/to/build.xml", WARFILE: "http://www.example.com/repo/file.war", STUDY: "EXAMPLE", BUG: "007" )
}},

上記のファイルには、、、およびフィールドが表示さBUILDFILEれます。手動で編集する代わりにスクリプトを使用して編集したい。f.write() 関数で変数を使用する方法がわかりません。私がやろうとしていることに従ってくださいWARFILESTUDYBUG

BF = raw_input("Enter BUILDFILE name:")
WF = raw_input("Enter WARFILE name:")
STUDY = raw_input("Enter STUDY name:")
BUG = raw_input("Enter BUG name:")
f = open("myfile", "w")
data = """parallel (
    {
    ignore(FAILURE) {
                              build( "Deploy",  BUILDFILE: "BF", WARFILE: "WF", STUDY: "STUDY", BUG: "BUG" )
    }},
f.write(data)
f.close()

このコードを実行しているとき、入力を受け取り、指定されたフィールドに入力しますが、どのように機能しないか.. f.write を使用して変数を取得し、それらのフィールドに配置する方法がわかりません。別の方法があれば教えてください..

編集

ユーザーが提案したようにスクリプトを変更しましたが、まだエラーが発生しています。何か不足していますか???

#!/usr/bin/python

import sys

BF = raw_input("Enter BUILDFILE name:")
WF = raw_input("Enter WARFILE name:")
STUDY = raw_input("Enter STUDY name:")
BUG = raw_input("Enter BUG name:")
f = open("myfile", "w")

data = """parallel (
{
ignore(FAILURE) {
                          build( "Deploy",  BUILDFILE: "{BF}", WARFILE: "{WF}", STUDY: "{STUDY}", BUG: "{BUG}" )
}},""".format(**locals())

f.write(data)
f.close()

次のエラーが発生しています

Traceback (most recent call last):
  File "./sched.py", line 18, in <module>
    }},""".format(**locals())
KeyError: '\nignore(FAILURE) {\n                          build( "Deploy",  BUILDFILE'
4

2 に答える 2