CMD outputs when using pylanguagetool (Python)

136 Views Asked by At

I'm using pylanguagetool, a Python wrapper for LanguageTool, a spelling/grammar correction application. It operates in both Python and Windows command line. It is particularly useful in command line, as it displays outputs in the following manner:

enter image description here

I'd like to capture this output, preferably in the same format. However, the standard methods of capturing command line outputs appear to generate encoding errors. For example,

pylanguagetool Text_01.txt > Text_01_comments.txt

generates the following error:

    C:\Users\danie\Desktop\Python\Grading\HI333\Test>pylanguagetool Text_01.txt > Text_01_comments.txt
Traceback (most recent call last):
  File "c:\users\danie\appdata\local\programs\python\python39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\danie\appdata\local\programs\python\python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\danie\AppData\Local\Programs\Python\Python39\Scripts\pylanguagetool.exe\__main__.py", line 7, in <module>
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\pylanguagetool\__init__.py", line 257, in main
    print_errors(response,
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\pylanguagetool\__init__.py", line 166, in print_errors
    print(
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 41, in write
    self.__convertor.write(text)
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 162, in write
    self.write_and_convert(text)
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 187, in write_and_convert
    self.write_plain_text(text, cursor, start)
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 195, in write_plain_text
    self.wrapped.write(text[start:end])
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 41, in write
    self.__convertor.write(text)
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 162, in write
    self.write_and_convert(text)
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 190, in write_and_convert
    self.write_plain_text(text, cursor, len(text))
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 195, in write_plain_text
    self.wrapped.write(text[start:end])
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 41, in write
    self.__convertor.write(text)
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 162, in write
    self.write_and_convert(text)
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 190, in write_and_convert
    self.write_plain_text(text, cursor, len(text))
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 195, in write_plain_text
    self.wrapped.write(text[start:end])
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 41, in write
    self.__convertor.write(text)
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 162, in write
    self.write_and_convert(text)
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 190, in write_and_convert
    self.write_plain_text(text, cursor, len(text))
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 195, in write_plain_text
    self.wrapped.write(text[start:end])
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 41, in write
    self.__convertor.write(text)
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 162, in write
    self.write_and_convert(text)
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 190, in write_and_convert
    self.write_plain_text(text, cursor, len(text))
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 195, in write_plain_text
    self.wrapped.write(text[start:end])
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 41, in write
    self.__convertor.write(text)
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 162, in write
    self.write_and_convert(text)
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 190, in write_and_convert
    self.write_plain_text(text, cursor, len(text))
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\colorama\ansitowin32.py", line 195, in write_plain_text
    self.wrapped.write(text[start:end])
  File "c:\users\danie\appdata\local\programs\python\python39\lib\encodings\mbcs.py", line 25, in encode
    return mbcs_encode(input, self.errors)[0]
UnicodeEncodeError: 'mbcs' codec can't encode character '\u2717' in position 0: invalid character

and writes only the following in the output file:

English (US) detected (99% confidence)

Possibly missing comma found.
  

Any suggestions on how to proceed?

UPDATE: After a suggestion to adopt the following:

pylanguagetool --no-color Text_01.txt > Text_01_comments.txt

The following error is generated:

C:\Users\danie\Desktop\Python\Grading\HI333\Test>pylanguagetool --no-color Text_01.txt > Text_01_comments.txt
Traceback (most recent call last):
  File "c:\users\danie\appdata\local\programs\python\python39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\danie\appdata\local\programs\python\python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\danie\AppData\Local\Programs\Python\Python39\Scripts\pylanguagetool.exe\__main__.py", line 7, in <module>
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\pylanguagetool\__init__.py", line 257, in main
    print_errors(response,
  File "c:\users\danie\appdata\local\programs\python\python39\lib\site-packages\pylanguagetool\__init__.py", line 166, in print_errors
    print(
  File "c:\users\danie\appdata\local\programs\python\python39\lib\encodings\mbcs.py", line 25, in encode
    return mbcs_encode(input, self.errors)[0]
UnicodeEncodeError: 'mbcs' codec can't encode character '\u2717' in position 2: invalid character

and continues to write the following in the output file:

English (US) detected (99% confidence)

Possibly missing comma found.
0

There are 0 best solutions below