python os.listdir() 사용시 한글, 한자 파일을 제대로 못불러옵니다.

junsa9의 이미지

파이썬에서 os.listdir 을 사용할때
파일중에 한글또는 한자등의 파일이름이 있을때 이것이 디코딩이 안되는것같습니다.
수없이 검색을 해보고 있는데 리스트로 반환받은 데이터를 디코딩하는것에 대해서는 찾지를 못하겠네요.

테스트한 코드를 첨부합니다.

File attachments: 
첨부파일 크기
Image icon Capture.JPG215.74 KB
raymundo의 이미지

i.decode("utf-8")

대신에 다음 세 가지를 시도해보시죠. 아마 cp949 에서 제대로 나올 걸로 생각합니다. (python shell 이 그냥 바이트 스트림을 그대로 출력하며 윈도우 기본 인코딩을 같이 쓴다면 i 에서 제대로 나올 수도)

i
i.decode("cp949")
i.decode("UTF-16")

좋은 하루 되세요!

익명 사용자의 이미지

애초에 os.listdir에 넘겨주는 파라미터가 유니코드이면 돌아오는 문자열도 유니코드가 됩니다.
(대체로 문자열을 받아서 문자열들을 돌려주는 os 함수들은 거의 다 이렇게 동작합니다.)

dir = u'D:/MAS/comp/masSmartViewer/source2'로 고쳐서 돌려보세요.