저는 간단한 텍스트 파일에서 변수를 읽음으로써 Python에서 변수를 정의하려고합니다. 따라서 ConfigParser, ConfigObj, PyYaml 및 JSON에 대한 내용을 읽었습니다. 현재 ConfigObj와 PyYaml에 관심이 많습니다. 그러나 나는 깨끗한 방식으로하고 싶은 일을 아직하지 못했습니다.ConfigObj 또는 PyYaml을 사용하여 사전 쌍을 대화 형 작업 영역으로 추출합니다.
ConfigObj와 PyYaml을 사용하면 외부 텍스트 파일에 정의 된 모든 것을 사전에로드 할 수 있습니다. 모든 키 - 값 쌍을 추출하여 대화 형 작업 영역에 별도의 변수로 저장하여이 사전을 진행하고 싶습니다. eval
를 사용
import yaml
config_file = open('myFile', 'r')
config = yaml.read(config_file)
keys = config.keys()
values = config.values()
for i in range(len(keys)):
string = keys[i] + '=' + str(values[i])
eval(string)
때때로 때문에 가능한 일이 악성 모든 종류의 것들을 허용에 대해 찌푸리게 :
이것은 내가 지금까지 사용 된 PyYaml의 방법입니다. 따라서 PyYaml 및/또는 ConfigObj에 위의 기능을 구현하는 내장 함수가 있는지 여부를 알고 싶습니다.
실제로 저는 MATLAB을 사용하고 있지만 유연성을 높이기 위해 파이썬도 사용하고 있습니다. 궁극적 인 목표는 구성 파일에 정의 된 매개 변수를 MATLAB 바이너리 형식 (또는 매트 파일)에 저장하는 것입니다. 그리고 제가 작성한 MATLAB 프로그램은 일반적인 지역 변수를 사용하기 때문에 사전에서 벗어나야했습니다. – Aeronaelius
필자는 파이썬에서 locals()를 사용해야한다는 것을 왜 이해하지 못한다.하지만 '최상의 방법'과 위험 요소와 기타 등등이 아니라는 것을 이해하는 한. – Logan
mat 파일에 변수를 저장하려면 어떻게해야합니까? 물론 나는 전체 MATLAB 프로그램을 다르게 작동하도록 다시 작성할 수 있습니다. 그러나 구성을 구문 분석하는 데 필요한 스크립트는 프로그램에 부합해야하며 다른 방향으로는 적합하지 않아야한다고 생각합니다. – Aeronaelius