관리 메뉴

솜씨좋은장씨

[Python] with open TypeError: an integer is required (got type str) 해결 방법! 본문

Programming/Python

[Python] with open TypeError: an integer is required (got type str) 해결 방법!

솜씨좋은장씨 2022. 7. 4. 00:26
728x90
반응형

👨🏻‍💻 발생 에러

with open(test_path, 'r', 'cp949') as f:
    test_result = f.readlines()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-27-af095a9d606a> in <module>
      3 print(test_path)
      4 
----> 5 split_test_result_for_mrc_passage(test_path=test_path)

<ipython-input-26-d45717ec8ffd> in split_test_result_for_mrc_passage(test_path)
      1 def split_test_result_for_mrc_passage(test_path):
----> 2     with open(test_path, 'r', 'cp949') as f:
      3         test_result = f.readlines()
      4 
      5         print(test_result)

TypeError: an integer is required (got type str)

txt 파일을 with open 을 활용하여 파일을 읽어오려고 했으나 

TypeError: an integer is required (got type str)

위와 같은 에러가 발생했습니다.

👨🏻‍💻 원인

Python 3 부터 세번째 인자에 암시적으로 int 형식의 값이 들어오도록 설정되어있는데

해당 위치에 'cp949' 같이 str 형식의 값이 들어 갔기 때문입니다.

👨🏻‍💻 해결 방법

이를 해결하는 방법은 세번째 값에 인코딩 관련 값을 넣고 싶을때

encoding= 이라고 명시해주면 해결이 됩니다.

👨🏻‍💻 기존 에러 발생 코드

with open(test_path, 'r', 'cp949') as f:
    test_result = f.readlines()

👨🏻‍💻 해결 방법 적용 코드

with open(test_path, 'r', encoding='cp949') as f:
    test_result = f.readlines()

 

읽어주셔서 감사합니다.

Comments