Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hwp5txt.exe fails reading file names with Korean characters, while hwp5txt-script.py succeeds #170

Open
jaepil-choi opened this issue Feb 24, 2020 · 0 comments

Comments

@jaepil-choi
Copy link

jaepil-choi commented Feb 24, 2020

제목 그대로, hwp5txt "파일명이 한글인 파일의 경로" 는
$ hwp5txt "C:\\Users\\username\\VSCodeProjects\\myproject\\data_files\\some_folder\\hwp\\2020-01-17_-_한국어가포함된 파일명(2020년도 제1차).hwp" > testdoc.txt ...

OSError: [Errno 22] Invalid argument: 'C:\Users\username\VSCodeProjects\asiae-BOK-nlp\data_files\BOK_minutes\hwp\2020-01-17_-_??????? ???(2020?? ?1?).hwp'

라고 에러가 나지만, 이를

$ hwp5txt-script.py "C:\\Users\\username\\VSCodeProjects\\myproject\\data_files\\some_folder\\hwp\\2020-01-17_-_한국어가포함된 파일명(2020년도 제1차).hwp" > testdoc.txt

라고 고쳐 실행할 경우 잘 실행됩니다. .exe 파일이 sys.argv 를 전달하는데 뭔가 인코딩 문제가 있는 것 같습니다.

하지만 의외로 이를 터미널이 아닌 파이썬 스크립트 내에서 파일 리스트를 불러와 실행하려고 하면

import os, subprocess
os.system("hwp5txt-script.py '경로 및 파일명.hwp'") # 에러남. 
subprocess.run("hwp5txt-script.py '경로 및 파일명.hwp'", shell=True) # 에러남. 

를 할 시, 두 방법 모두

This file does not have an app associated with it for performing this action. Please....

라는 장문의 윈도우 팝업 에러메세지가 뜹니다.

하지만 웃기게도 파일명에 한글만 없다면 아까 파일에 한글이 들어가면 동작하지 않던 hwp5txt는 위 방법으로 스크립트 내에서 실행할 수 있습니다.

os.system("hwp5txt '경로 및 영어로된 파일명.hwp'") # 잘 동작함.

따라서 현재는 원래 파일명의 리스트를 가져오고, 파일명을 임시로 영어로 바꾸고, 한글파일을 txt로 변환하고, 다시 파일들을 원래 파일명으로 바꾸는 방식으로 작업하고 있습니다.

어느 부분에서 문제가 있는걸까요? 혹시 터미널 프롬프트 말고 파이썬 스크립트 내에서 hwp5txt를 import 해서 한글파일을 불러와 변환할 수는 없을까요?

주말 내내 이거만 보면서 알아냈습니다....
hwp 파일의 txt 변환에 관해 조금 더 질문하고 싶은 내용이 있는데 이는 따로 이슈로 열도록 하겠습니다.

Full error message 및 자세한 내용은 아래 링크에 적어놨습니다.

제가 올린 Stackoverflow 질문: https://stackoverflow.com/questions/60371338/how-do-i-pass-string-parameter-that-has-encoding-problem-from-terminal

Reddit post:
https://www.reddit.com/r/learnpython/comments/f8o5v6/how_do_i_pass_string_parameter_that_has_encoding/

@jaepil-choi jaepil-choi changed the title hwp5txt.exe fails reading file names with Korean characters, while hwp5txt-script.py does not. hwp5txt.exe fails reading file names with Korean characters, while hwp5txt-script.py suceeds Feb 24, 2020
@jaepil-choi jaepil-choi changed the title hwp5txt.exe fails reading file names with Korean characters, while hwp5txt-script.py suceeds hwp5txt.exe fails reading file names with Korean characters, while hwp5txt-script.py succeeds Feb 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant