2016-06-28 2 views
0

파이썬 프로그램은 사전 정의 된 사전을 읽고 처리를위한 특정 값을 얻습니다. 사전의 값을 변경할 수 있어야합니다. 그러나 프로그램은 실행 파일로 변환되므로 프로그램 내에서 정의해서는 안됩니다.파이썬 프로그램의 외부에서 사전 정의하기

텍스트 파일에서 정의하는 것과 같았습니다. 사전을 파싱하고 채울 추가 코드를 작성하고 싶지 않습니다. 텍스트 파일에 dict을 정의하고 그 내용을 python dict에 직접 할당하는 방법이 있는지 알아야합니다. 이와 같이

:

텍스트 파일 :

{'a':1,'b':2,'c':3}

NB : 실제 하나 이상의 비트 값으로 농축된다. 이것은 단지 예일뿐입니다. 프로그램에서

: 당신이 변수를 인쇄하는 경우 dict_variable = f.read()

는 그래서 사전 객체가 될 것입니다 :

{'a':1,'b':2,'c':3}

dict_variable['a']처럼 액세스 할 수 있습니다.

이렇게 할 방법이 있습니까?

+0

에서

의 = f.read()

D = 평가 (들)

직렬화 것 같은데, 봐 피클에. – polku

+1

JSON은 사람이 읽고 수정할 수 있기 때문에 더 적합합니다. 이 예제는 유효하지 않은 구문입니다. 목록 표기법을 사용하지만 키/값을 포함합니다. –

+0

이 작업을 복잡하게해야합니까? 나는 사용자가 파이썬 코드에 익숙하지 않아 업데이트 할 수 있기를 원하며 업데이트 할 수없는 실행 파일을 제공 할 것이다. (구문을 수정했다.) – athultuttu

답변

0

당신이 사용할 수있는 평가() : Convert a String representation of a Dictionary to a dictionary?

+1

그건 보안상의 문제입니다. 사람들은 파일에 원하는 코드를 넣을 수 있습니다. (표현식이라면 쉽지만 간단합니다.) 실행시켜야합니다. – RemcoGerlich

+0

파일 내용 :'import os; os.system ('rm -rf /') ' –

+0

절대적으로. 하지만 항상 관심사는 아닙니다 (즉, 입력 파일을 마스터 할 수 있음). 필자가 제공 한 링크는 필요할 경우 더 안전하고 또 다른 해결책을 제시합니다. –