私は問題に取り組んでおり、私の目標はファイル内の変数とファイルの名前を置き換えることです。 問題は、すべての組み合わせ(一般的には24個の組み合わせ)について、同時に2つの変数を変更する必要があることです。ファイル内の変数のペアを置換する
私は文字列のすべての組み合わせを作成する方法を知っていますが、リストを内部に入れて反復処理したいのです。
a = [ 'distance', 'T1', 'T2', 'gamma' ]
new_list = list(itertools.permutations(a, 2))
私は私の値を渡す機能を作成しました:
def replace_variables(distance ='0', T1 ='0', T2 = '0', gamma = '0'):
template_new = template.replace('*distance*', distance).replace('*T1*', T1).replace('*T2*', T2).replace('*gamma*', gamma)
input_file = input_name.replace('one','T1'+T1).replace('two','T2'+T2).replace('phi','PHI'+Phi).replace('distance','R'+distance)
return template_new, input_file
私はその関数を呼び出すときに、私は、変数の名前だけを渡すことができます。
for i in new_list:
elem1 = i[0]
elem2 = i[1]
template_new, input_file =replace_variables(elem1, elem2)
print input_file
私はリストを使用する必要がありますが:
元のファイル:name_file_R_T1_T2_gamma.txt
distance = ['-3','+3']
T1 = ['-3', '+3']
T2 = ['-3', '+3']
gamma = ['-3', '+3']
と変数の各ペアについては、以下のようなファイルやファイルの名前の値を変更
は、次のように置き換えられます。
name_file_3_3_0_0.txt, name_file_3_-3_0_0.txt, name_file_-3_3_0_0.txt,
name_file_3_3_0_0.txt, name_file_3_0_3_0.txt, name_file_3_0_-3_0.txt,
など。
オリジナルのテンプレートは以下のようになります。
template = """
R = 3.0 *distance* cm
THETA1 = 60. *T1* degree
THETA2 = 2.0 *T2* degree
GAMMA = 0 *gamma* degree
"""
と私が取得したい:
template = """
R = 3.0 +3 cm
THETA1 = 60. +3 degree
THETA2 = 2.0 +0 degree
GAMMA = 0 +0 degree
"""
など
あなたの投稿は不明です。おそらく、あなたがあなたのテンプレートについてのより多くの情報を提供するならば。 – Kosch
だから 'input_name =" name_file_R_T1_T2_gamma.txt "'?あなたはファイルの名前が変わらないと期待したいので、 "" one "、" two "、" phi "、" distance "というテキストを置き換えます。 .txt "' -3はどこから来たのですか?あなたの質問を明確にするために編集してください。 –
私のテンプレートに関する詳細を追加しました。 – Monica