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:
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.