2010-08-23 5 views
4

현재 값이있는 전역 변수가있는 파이썬 파일이 있습니다. 별도의 파이썬 스크립트에서이 값을 영구히 변경하고 싶습니다. 나는 setattr와 같은 것을 시도했다. 그러나 doesnt는 일하는 것처럼 보인다. 이것을 할 수있는 방법이 있습니까?파이썬 스크립트에서 파이썬 파일의 변수 값을 변경하는 방법

+0

실제로 하나의 스크립트를 다른 스크립트에서 수정하고 싶습니까? – alternative

+0

표준 라이브러리에 메모리의 파이썬 소스 파일을 구문 분석하고 변경 한 다음 해당 파일을 쓸 수 있는지 궁금합니다. –

+0

다른 질문은 주제와 다릅니다. ** 여기에 ** 언급하지 마십시오. "다른 질문"에 대한 언급을 삭제하십시오. 집중 해주세요. –

답변

7

짧은 대답은 다음과 같습니다. 그럴만한 가치는 없을 것입니다.

구성 파일을 만든 다음 응용 프로그램에서 업데이트하려고하는 것 같습니다. 당신은 ConfigParser 제한 번거 로움과 함께 당신을 위해 구성 파일을 읽고 쓸 수있는 내장 모듈을 사용하여 시도해야합니다 : http://docs.python.org/library/configparser.html

+0

글쎄, 이것이 바로 내가 무엇인가? 하려고하는 것. 다른 방법이 없다면, configparser가 될 것입니다. – lango

+1

@Iango, 다른 방법이 있지만 그것이 가치가있는 것보다 더 많은 문제가 될 것입니다. – carl

3

currently have a python file with a bunch of global variables with values

하는의 그것과 같습니다 척하자. globals.py

this = 1 
that = 2 

그리고이 파일의 다른 아무것도 없다. 아무것도.

이 파일은 다음과 같이 사용됩니다.

from globals import * 

하자 더 우리가 "갱신"기본적으로 globals.py

import os 
os.rename("globals.py", "globals.bak") 
with open("globals.py", "w") as target: 
    for variable in ('some', 'list', 'of', 'sensible', 'globals'): 
     target.write("{0!s} = {1!r}".format(variable, globals()[variable]) 

을 필요로 몇 가지 시뮬레이션을 척, 당신은 당신의 글로벌 사전에서 파이썬 코드를 다시 작성하십시오.

이것은 두려운 해결책입니다. 실제로 사용하지 마십시오.

+0

위의 코드를 사용하여 관련 Python 파일을 테스트하여이 오류가 발생했습니다. python test.py 추적 (가장 최근에 마지막 호출) : "test.py"파일의 7 번째 줄, 전역 : TypeError : 'builtin_function_or_method'개체가 반복 가능하지 않습니다. 내가 잘못 했나요? – lango

+1

예. 너는 뭔가 잘못하고있다. 생각하지 않고 타이핑하고 있습니다. 때때로 게시 된 코드에 오류가 있습니다. 코드를 이해했는지 알아보기 위해 입력하기 전에 잠시 생각할 필요가 있습니다. –

+1

아마도 비교적 익숙하지 않아서 파이썬에 대해 충분히 이해하지 못했을까요? 나는 당신의 코드를 타이핑했고, 그것을 통해 생각하고 있었고, 마지막에 누락 된 괄호를 잡았습니다. 하지만 전역 (편집 전에)이 파일 또는 내장 된 파이썬 변수를 참조했다고 생각했습니다. 어쨌든, 해결책을 가져 주셔서 감사합니다. 나는 너와 @ 칼을 모두 시험해 보았다. – lango