[파이썬] os `os.fsencode()`, `os.fsdecode()`로 파일 시스템 인코딩 변환

파일 시스템은 다양한 문자 인코딩 방식을 사용해 파일 및 폴더 이름을 저장합니다. 이로 인해 파일 시스템에 저장된 문자열을 사용하는 프로그램에서는 인코딩 변환이 필요할 수 있습니다. 파이썬의 os 모듈에는 파일 시스템 인코딩 변환을 지원하는 두 가지 함수인 os.fsencode()os.fsdecode()가 있습니다.

os.fsencode()

os.fsencode() 함수는 유니코드 문자열을 파일 시스템 인코딩으로 변환하여 바이트로 인코딩합니다. 이는 파일 시스템에 인코딩 된 형식으로 파일 또는 폴더 이름을 저장해야 할 때 유용합니다.

다음은 os.fsencode()를 사용하여 문자열을 파일 시스템 인코딩으로 변환하는 예제입니다.

import os

string = "파일"
encoded_string = os.fsencode(string)
print(encoded_string)

위의 코드에서 os.fsencode() 함수를 사용하여 “파일”이라는 유니코드 문자열을 파일 시스템 인코딩으로 변환합니다. 변환된 바이트 문자열은 encoded_string 변수에 저장되고 출력됩니다.

os.fsdecode()

os.fsdecode() 함수는 파일 시스템에서 읽은 바이트 문자열을 유니코드 문자열로 디코딩합니다. 파일 시스템에 저장된 파일 또는 폴더 이름을 사용하는 프로그램에서 해당 이름을 디코드해야 할 때 유용합니다.

다음은 os.fsdecode()를 사용하여 바이트 문자열을 유니코드로 디코드하는 예제입니다.

import os

byte_string = b'\xed\x8c\x8c\xec\x9d\xbc'
decoded_string = os.fsdecode(byte_string)
print(decoded_string)

위의 코드에서 os.fsdecode() 함수를 사용하여 바이트 문자열을 디코드합니다. 디코드된 유니코드 문자열은 decoded_string 변수에 저장되고 출력됩니다.

요약

os.fsencode()os.fsdecode() 함수는 파일 시스템 인코딩과 유니코드 문자열 간의 변환을 용이하게 해줍니다. 이 함수들을 사용하여 파일 및 폴더 이름을 파일 시스템에서 읽거나 저장할 때 인코딩 변환을 수행할 수 있습니다.