2016-10-16 2 views
0

파일과 튜플 목록을 읽고 쓰고 싶습니다. 파일에서 파이썬의 튜플리스트 목록을 읽으십시오.

g_faces = [[(3,2)(3,5)],[(2,4)(1,3)(1,3)],[(1,2),(3,4),(6,7)]] 

나는

pickle.dump(g_faces, fp)

  • pickle.load(fp)
    • 을 사용하지만 파일은 사람이 읽을 수 없습니다. 그것을 할 수있는 쉬운 방법이 있습니까?

  • +2

    * "파일을 사람이 읽을 수 없습니다"* - 그래서 무엇입니까? 있을 수 없어요. – jonrsharpe

    +0

    당신은 용감한 사람이라면 같은 인터페이스를 사용하는'json' 또는'eval'을 사용할 수 있습니다. 'json'을 사용한다면 포맷을 약간 손상시켜야합니다. –

    +0

    아마도 [Python 사람이 읽을 수있는 개체 직렬화] (http://stackoverflow.com/questions/408866/python-human-readable-object-serialization?rq=1) –

    답변

    0

    json 모듈을 사용해보십시오.

    import json 
    
    g_faces = [[(3,2), (3,5)],[(2,4), (1,3), (1,3)],[(1,2), (3,4), (6,7)]] 
    
    json.dump(g_faces, open('test.json', 'w')) 
    
    g_faces = json.load(open('test.json')) 
    
    # cast back to tuples 
    g_faces = [[tuple(l) for l in L] for L in g_faces] 
    
    +1

    의 복제본 JSON은 목록과 튜플 (둘 다 JSON 배열로 직렬화 됨)이므로 결과에는 * all * 목록이 포함됩니다. – jonrsharpe

    +0

    @jonrsharpe 좋은 지적. OP는 튜플 목록을 요청하고 있습니다. –

    +0

    그것은 나에게 알려줍니다 : TypeError : <_io.TextIOWrapper name = 'test.json'mode = 'w'encoding = 'cp1252'> JSON을 직렬화 할 수 없습니다 –

    관련 문제