복붙노트

[PYTHON] 목록을 파일로 저장하고 목록 유형으로 읽는 방법?

PYTHON

목록을 파일로 저장하고 목록 유형으로 읽는 방법?

목록 점수 = [1,2,3,4,5]라고 가정하면 내 프로그램이 실행되는 동안 변경됩니다. 어떻게하면 파일에 저장하여 다음에 프로그램이 실행될 때 변경된 목록을 목록 유형으로 액세스 할 수 있습니까?

나는 시도했다 :

score=[1,2,3,4,5]

with open("file.txt", 'w') as f:
    for s in score:
        f.write(str(s) + '\n')

with open("file.txt", 'r') as f:
    score = [line.rstrip('\n') for line in f]


print(score)

그러나이 결과는 목록에있는 요소가 정수가 아닌 문자열이됩니다.

해결법

  1. ==============================

    1.이를 위해 pickle 모듈을 사용할 수 있습니다. 이 모듈에는 두 가지 방법이 있습니다.

    이를 위해 pickle 모듈을 사용할 수 있습니다. 이 모듈에는 두 가지 방법이 있습니다.

    https://docs.python.org/3.3/library/pickle.html 암호:

    >>> import pickle
    >>> l = [1,2,3,4]
    >>> with open("test.txt", "wb") as fp:   #Pickling
    ...   pickle.dump(l, fp)
    ... 
    >>> with open("test.txt", "rb") as fp:   # Unpickling
    ...   b = pickle.load(fp)
    ... 
    >>> b
    [1, 2, 3, 4]
    
  2. ==============================

    2.테스트 중에 텍스트 파일을 열고 내용을 쉽게 변경할 수 있기를 원했기 때문에 피클을 사용하지 않기로 결정했습니다. 그러므로, 나는 이것을했다 :

    테스트 중에 텍스트 파일을 열고 내용을 쉽게 변경할 수 있기를 원했기 때문에 피클을 사용하지 않기로 결정했습니다. 그러므로, 나는 이것을했다 :

    score = [1,2,3,4,5]
    
    with open("file.txt", "w") as f:
        for s in score:
            f.write(str(s) +"\n")
    
    with open("file.txt", "r") as f:
      for line in f:
        score.append(int(line.strip()))
    

    따라서 파일의 항목은 문자열로 파일에 저장 되더라도 정수로 읽습니다.

  3. ==============================

    3.피클을 사용하고 싶지 않은 경우 목록을 텍스트로 저장 한 다음 평가할 수 있습니다.

    피클을 사용하고 싶지 않은 경우 목록을 텍스트로 저장 한 다음 평가할 수 있습니다.

    data = [0,1,2,3,4,5]
    with open("test.txt", "w") as file:
        file.write(str(data))
    
    with open("test.txt", "r") as file:
        data2 = eval(file.readline())
    
    # Let's see if data and types are same.
    print(data, type(data), type(data[0]))
    print(data2, type(data2), type(data2[0]))
    
  4. ==============================

    4.pickle 및 기타 직렬화 패키지가 작동합니다. .py 파일에 작성하여 가져올 수 있습니다.

    pickle 및 기타 직렬화 패키지가 작동합니다. .py 파일에 작성하여 가져올 수 있습니다.

    >>> score = [1,2,3,4,5]
    >>> 
    >>> with open('file.py', 'w') as f:
    ...   f.write('score = %s' % score)
    ... 
    >>> from file import score as my_list
    >>> print(my_list)
    [1, 2, 3, 4, 5]
    
  5. from https://stackoverflow.com/questions/27745500/how-to-save-a-list-to-a-file-and-read-it-as-a-list-type by cc-by-sa and MIT license