mirror of
https://github.com/budden/proekty-na-russkom-jazyke
synced 2024-11-24 00:09:36 +03:00
отладочная утилита распечатай-лексемы-из-файла.py
This commit is contained in:
parent
01c2e243bd
commit
ec7ba22b64
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
иривк/ЯзыкиКоторыеМыНеЗаказывали.txt
|
||||
иривк/log.txt
|
||||
иривк/cloned_repos
|
||||
|
38
иривк/распечатай-лексемы-из-файла.py
Normal file
38
иривк/распечатай-лексемы-из-файла.py
Normal file
@ -0,0 +1,38 @@
|
||||
import os
|
||||
import sys
|
||||
import pathlib
|
||||
import re
|
||||
import requests
|
||||
from subprocess import call
|
||||
import threading
|
||||
import pygments
|
||||
from pygments.lexers import get_lexer_for_filename
|
||||
import pygments.token
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
|
||||
## Появились ложноположительные срабатывания. Пытаемся распечатать русские лексемы, которые являются
|
||||
## такими срабатываниями
|
||||
## Принимает в качестве параметра имя файла. Кодировку можно поменять в исходном тексте
|
||||
|
||||
кодировка = 'utf-8'
|
||||
|
||||
def main():
|
||||
file_path = sys.argv[1]
|
||||
file_ext = os.path.splitext(file_path)[1]
|
||||
lexer = get_lexer_for_filename(file_ext)
|
||||
if lexer is None:
|
||||
print("Не удалось определить лексер")
|
||||
exit(1)
|
||||
|
||||
print("лексер = %s" % lexer.name)
|
||||
|
||||
with open(file_path, 'r', encoding=кодировка, errors = 'ignore') as f:
|
||||
лексемы = pygments.lex(f.read(), lexer)
|
||||
for token, value in лексемы:
|
||||
if pygments.token.is_token_subtype(token, pygments.token.Name):
|
||||
if re.search('[а-яА-ЯёЁ]', value):
|
||||
print("класс = %s, текст = %s" % (token, value))
|
||||
|
||||
|
||||
main()
|
||||
|
Loading…
Reference in New Issue
Block a user