Я пытаюсь передать строковый параметр с корейскими символами. Это вызывает ошибку, потому что корейские символы, по-видимому, неправильно закодированы / декодированы перед передачей во встроенную функцию open()
.
Я написал команду, затем выполнил ее с os.system()
, что эквивалентно выполнению в командной строке.
command = 'hwp5txt "C:\\Users\\username\\VSCodeProjects\\myproject\\data_files\\some_folder\\hwp\\2020-01-17_-_한국어가포함된 파일명(2020년도 제1차).hwp" > testdoc.txt'
os.system(command)
Это приводит к ошибке, так как корейские символы неправильно декодируются.
Трассировка (последний последний вызов): файл "C: \ Users \ имя пользователя \ AppData \ Local \ pypoetry \ Cache \ virtualenvs \ asiae-bok-nlp-xpMr0EW7-py3.7 \ Скрипты \ hwp5txt-script.py ", строка 11, в файле load_entry_point ('pyhwp == 0.1b12', 'console_scripts', 'hwp5txt') ()" c: \ users \ username \ appdata \ local \ pypoetry \ кеш \ virtualenvs \ asiae-bok-nlp-xpmr0ew7-py3.7 \ lib \ site-packages \ hwp5 \ hwp5txt.py ", строка 102, в основном
с закрытием (Hwp5File (hwp5path)) как hwp5file: File" c: \ users \ username \ appdata \ local \ pypoetry \ cache \ virtualenvs \ asiae-bok-nlp-xpmr0ew7-py3.7 \ lib \ site-packages \ hwp5 \ filestructure.py ", строка 537, в init stg = Hwp5FileBase (stg) Файл "c: \ users \ username \ appdata \ local \ pypoetry \ cache \ virtualenvs \ asiae-bok-nlp-xpmr0ew7-py3.7 \ lib \ site-packages \ hwp5 \ filestructure.py ", строка 188, в init stg = файл OleStorage (stg)" c: \ users \ username \ appdata \ local \ pypoetry \ cache \ virtualenvs \ asiae-bok-nlp -xpmr0ew7-py3.7 \ lib \ site-packages \ hwp5 \ storage \ ole.py ", строка 35, в init self.impl = impl_class (* args, ** kwargs) Файл "c: \ users \ uesrname \ appdata \ local \ pypoetry \ cache \ virtualenvs \ asiae-bok-nlp-xpmr0ew7- py3.7 \ lib \ site-packages \ hwp5 \ plat \ olefileio.py ", строка 112, в init , если не isOleFile (olefile): Файл" c: \ users \ username \ appdata \ local \ pypoetry \ cache \ virtualenvs \ asiae-bok-nlp-xpmr0ew7-py3.7 \ lib \ site-packages \ olefile \ olefile.py ", строка 309, в isOleFile с открытым (имя файла, 'rb') как fp: OSError: [Errno 22] Недопустимый аргумент: 'C: \ Users \ имя пользователя \ VSCodeProjects \ asiae-BOK-nlp \ data_files \ BOK_minutes \ hwp \ 2020-01-17 _-_ ??????? ??? (2020 ??? 1?). Hwp '
Как вы можете видеть, OS Error
был вызван, потому что команда, которую я послал в приглашение, так или иначе не смогла передать права Корейские символы, которые теперь ?????
вместо собственного имени.
Я пробовал это на терминале вручную, но он также не работает.
Как передать строковые символы, которые неправильно передаются в модуль?
Я использую последнюю версию VSCode с терминалом Git Bash.
Также я могу проверить эту информацию. Если вам нужна дополнительная информация, пожалуйста, прокомментируйте.
sys.stdout.encoding
>> 'UTF-8'
sys.stdin.encoding
>> 'cp1252'
sys.getfilesystemencoding
>> 'UTF-8'