2017-12-04 3 views
1

.txt 파일에 사전을 쓰려고합니다. 텍스트 문서에 키 값을 여러 개 추가하는 효율적인 방법을 찾지 못했습니다.txt 파일 사전

players = {} 
def save_roster(players): 
    with open("Team Roster.txt", "wt") as out_file: 
     for k, v in players.items(): 
      out_file.write(str(k) + ', ' + str(v) + '\n\n') 
    display_menu() 

키에 대해 여러 개의 값을 가진 사전이 있습니다. 아웃 내가 목표로하고 넣어

Bryce, <__main__.Roster object at 0x00000167D6DB6550> 

입니다 : 프로그램의이 부분은 저를 떠나

Bryce, 23, third, 23 
+0

명단 개체는 어떻게 생겼습니까? 클래스에 대해'__repr__' 메소드를 구현해야한다고 생각합니다. – drsnark

+0

데프 __init __ (자기, 이름, 나이, 위치, 저지) : self.name = 이름 self.age = 나이 self.position = 위치 self.jersey = 저지 데프 SETNAME (자기 이름) : self.name = 이름 데프 setage (자기 나이) : self.age = 나이 데프 settype (자기 위치) : self.position = 위치 데프 통해 setowner (자기 저지) : 자기. 저지 = 저지 def getname (self) : return sel f.name def getage (self) : return self.age – ActionDubs

+0

클래스에 __repr__ 메소드를 구현하려고 했습니까? – drsnark

답변

0

파이썬은 본질적으로 객체를 인쇄하는 방법을 이해하지 않습니다. 파이썬에게 객체를 문자열로 표현하는 방법을 알려면 __str__ 메소드를 정의해야합니다. 그렇지 않은 경우 표시되는 값이 기본값으로 사용됩니다. 귀하의 경우,

def __str__(self): 
    return str(self.position)+", "+str(self.jersey) 

또는 인쇄 할 속성과 같은 것으로 갈 것입니다.

텍스트 파일로부터 데이터를 다시 판독하기 :

with open("Team Roster.txt", "r") as in_file: 
    for line in in_file: 
     player = Roster(*(line.split(", ")) 
     #do something with player, like store it in a list 

Roster.__init__() 가정하는, 즉 명부 객체 위해 파일의 각 행의 매개 변수를 전달하여 초기화되고, 적절하게 설정된다.

+0

그래서 원하는 형식으로 형식을 설정 한 후에 프로세스를 되돌릴 수 있습니까? 방금 만든 텍스트 파일에서 동일한 정보를 다시 프로그램으로 가져 오려면? – ActionDubs

+0

@ActionDubs 다른 질문이지만 답변을 편집했습니다. – colopop

+0

다른 질문입니다. 여기에 답변 해 주셔서 감사합니다. 계속 : TypeError : 'dict'개체를 호출 할 수 없습니다. – ActionDubs