2013-07-29 3 views
0
나는 웹 서버에 대한 사용자 지정 설정 파일을 만드는 중이라서

하지 않고, 설정 파일은 다음과 같습니다Python33 - SafeConfigParser은 눈에 보이지 않는 줄 바꿈을 가하고, 또는 유효한 http.server 입력

[server] 
adress = "127.0.0.1" 
port = 8080 

코드하는이 구문 분석 :

def main(): 
    parser = SafeConfigParser() 
    parser.read("settings.cfg") 
    global adress, port 
    adress = parser.get("server", "adress") 
    port = int(float(parser.get("server", "port").rstrip())) 
    print(adress + str(port)) 

끝에 코드를 인쇄하면 "127.0.0.1"8080 문자열이 표시됩니다. 내 http.server 서버가 입력으로 그 허용하지 않습니다 어떻게 든 비록 : httpd = server_class((adress, port), Handler)를 다음과 같은 오류 제공 :

httpd = self.server_class((adress, port), Handler) 
    File "C:\Python33\lib\socketserver.py", line 430, in __init__ 
    self.server_bind() 
    File "C:\Python33\lib\http\server.py", line 135, in server_bind 
    socketserver.TCPServer.server_bind(self) 
    File "C:\Python33\lib\socketserver.py", line 441, in server_bind 
    self.socket.bind(self.server_address) 
socket.gaierror: [Errno 11004] getaddrinfo failed 

난 그냥 입력 ("127.0.0.1", 8080)을 입력, 그것은 않는 일을하지만, 정확히 오는 것과 동일합니다 설정 파일에서. 또한 설정 파일에 localhost192.168.1.3을 시도했지만 작동하지 않습니다. 어떻게 해결할 수 있습니까? 다른 답변은 줄 바꿈에 문제가 있다고했지만, adress + port은 그 중 하나에 개행을 표시하지 않습니다.

답변

0

직접 고쳐주었습니다!

필자는 SafeConfigParser가 구성 파일에 정수를 넣더라도 설정 파일을 전체 문자열로 읽는다고 생각합니다. 내가 한 모든 것은 adress = "127.0.0.1"adress = 127.0.0.1으로 바꿨고 이제는 작동합니다. 나는 왜 이것이 사실인지 완전히 이해하지 못하기 때문에 누군가로부터의 설명을 여전히 좋아할 것입니다.