UnicodeEncodeError при использовании line_profiler - PullRequest
0 голосов
/ 08 июля 2019

Я изучаю Python и пытаюсь анализировать производительность кода построчно.Я установил line_profiler, но он всегда показывал

UnicodeEncodeError: кодек 'charmap' не может кодировать символы в позиции 30-31: сопоставление символов с неопределенным

Я пытался запустить chcp 65001, который не сделалt работа.

import cgi
import time
from line_profiler import LineProfiler

def test2():
    print('hello!test2()')

def test1():
    html='''<script>alert("you are a good boy!&I like you")</scrpit>'''
    test2()
    escape_html=cgi.escape(html)
    for item in range(5):
        time.sleep(1)
    print(escape_html)

if __name__=='__main__':
    lp=LineProfiler()
    lp.add_function(test2)
    lp_wrap=lp(test1)
    lp_wrap()
    lp.print_stats()

Результаты:

привет! test2 ()

C: \ OneDrive \ u684c \ u9762 \ linecheck.py: 91:DeprecationWarning: cgi.escape устарела, вместо этого используйте html.escape escape_html = cgi.escape (html)

alert («ты хороший мальчик! Ты мне нравишься») Единица таймера:5.14057e-07 с

Общее время: 2.6731e-05 с

Отслеживание (последний последний вызов):

Файл "C: \ OneDrive \ u684c \ u9762 \linecheck.py ", строка 101, в

lp.print_stats ()

Файл" C: \ Python \ lib \ site-packages \ line_profiler.py ", строка 139, в print_stats

show_text (lstats.timings, lstats.unit, output_unit = output_unit, stream = stream, stripzeros = stripzeros)

Файл "C: \ Python \ lib \ site-packages \ line_profiler.py"по строке 261, вshow_text

output_unit = output_unit, stream = stream, stripzeros = stripzeros)

Файл "C: \ Python \ lib \ site-packages \ line_profiler.py", строка 210, в show_func

stream.write («Файл:% s \ n»% filename)

Файл «C: \ Python \ lib \ encodings \ cp1252.py», строка 19, в кодировке

return codecs.charmap_encode (input, self.errors, encoding_table) [0]

UnicodeEncodeError: кодек 'charmap' не может кодировать символы в позиции 30-31: символ отображается в [Закончено в 5.8s]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...