저는 Python 2.7.3을 사용하고 있습니다. 나는 사전 키를 통해 검색하는 간단한 코드를 작성하고,이 var_par
에 의해 정의 된 키를 발견하면, 그것은 반복적으로 목록 array
에서 새로운 값을 대체 : 내가하고 싶은 기본적으로 지금의사전 값을 별도의 파일로 바꿉니다.
var_par = 'B'
array = [1.4, 2.6, 4.8, 3.56]
params = {
"A": ["A part of", "#comment 1"],
"B": [1.2, "#comment 2"],
"C": ["the test run.", "#comment 3"]
}
for I in array:
if var_par in params: params[var_par][0] = I
execfile('script.py')
무엇 내를 질문은 다음에 대한 것입니다 : 내 params
사전을 별도의 파일 parameters.dat
에 넣고 똑같은 일을하고 싶지만 물리적으로는var_par
에 정의 된 값 (이 경우 B
)을 변경하고 저장하십시오. 스크립트 script.py
이전의 파일이 실행됩니다. 그 이유는이 스크립트가 파일에서 입력 매개 변수를 읽는 것입니다.
value_old = str(params[var_par][0])
value_new = str(I)
for key in fileinput.input("parameters.dat", inplace = 1):
print key.replace(value_old, value_new),
놀아 시도, 나는이 추가로 가지고있는 문제는 예를 들어 모두 C
및 B
주 같은 값, 모두 새로운 값으로 변경 될 때마다. (물론 이것은 코드가 값을 검색하고 주어진 키가 아닌 var_par
을 찾지 만한다는 논리입니다.) 그렇지 않으면 작동하지만이 코드가 없으면 코드는 당연히 불가능합니다. 해결할. 다른 한편으로 나는 그것이 어렵지 않아야하며 내가 가까이 있다고 느낍니다.
모든 입력에 대해 감사드립니다.
ps. 저는 파이썬 초보자입니다. 그래서 그다지 잘하지는 못하지만 필요할 경우 도움을 제공하려고 노력할 것입니다.
감사합니다.
params : params [var_par] [0] = I' 대신에'var_par '을 사용하지 않는 이유는 무엇입니까? 그것은'params'의 모든 키를 반복하는 것보다 훨씬 빠릅니다. –
안녕 Martijn, 귀하의 의견을 보내 주셔서 감사합니다. 나는 또한 이것을 깨닫고 더 효율적으로 쓸 수 있다고 생각했지만 아직 다루지 않았다. 내 대답을 편집. –
'B'와 'C'에 대한 목록이 둘 중 하나를 변경하면 변경되며, * 동일한 목록 *을 참조합니다. 당신은 우리에게 어떻게'params '를 실제로 만드는지 보여줄 필요가 있습니다. –