|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.12.2023, 10:59 | #1 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,119
|
Код, который делает замены в коде Python при помощи C
здравствуйте, нейросеть подсказала:
Вот код, который делает замены txt = txt.replace(l, tr) в коде Python при помощи C: Код:
Инициализируется библиотека CFFI. Определяется прототип функции replace(). Компилируется C-код, содержащий функцию replace(). Создаются указатели на строки txt, l и tr. Функция ffi.get_symbol() используется для получения указателя на функцию replace() из библиотеки my_module. Функция replace() вызывается с параметрами txt, l и tr. Функция ffi.string() используется для преобразования результата вызова функции replace() в строку. В результате выполнения этого кода будет выведен следующий текст: Это текст. Это еще один текст. опробовав его получаю ошибку ModuleNotFoundError: No module named 'cffi.backends' подскажите как её исправить? будет ли смысл в этом огороде при необходимости сделать миллион замен в тексте? |
22.12.2023, 21:13 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
У меня на 3 питоне заработало только в таком виде:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
22.12.2023, 21:36 | #3 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,119
|
BDA, спасибо!!, работает
Последний раз редактировалось Ципихович Эндрю; 22.12.2023 в 21:55. |
22.12.2023, 21:38 | #4 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,119
|
BDA, по мотивам вашего кода, для большей ясности код:
Код:
FFI Replacement Time: 0.0004976999989594333 Python Replacement Time: 5.310000051395036e-05 Python replacement is faster=замена происходит быстрее всё было зря? Последний раз редактировалось Ципихович Эндрю; 22.12.2023 в 22:00. |
22.12.2023, 21:59 | #5 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,119
|
|
22.12.2023, 22:05 | #6 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,119
|
нейросеть подсказала:
Код:
Сообщение об ошибке указывает, что компилятору C не удается скомпилировать код C, созданный CFFI. Конкретное сообщение об ошибке предполагает, что в компиляторе отсутствует необходимая библиотека. Чтобы решить эту проблему, вам необходимо убедиться, что в вашей системе установлены необходимые библиотеки. Это можно сделать, установив пакет Microsoft C++ Build Tools с веб-сайта Microsoft. Ниже приведены инструкции по установке пакета Microsoft C++ Build Tools: Перейдите на веб-сайт Microsoft и загрузите установщик Microsoft C++ Build Tools для вашей операционной системы. Запустите установщик и следуйте инструкциям на экране, чтобы установить пакет. После завершения установки вы сможете скомпилировать код C, сгенерированный CFFI, без возникновения ошибки CompileError. установил, не помогло, может перезагрузка нужна? разбираться буду завтра.........всем добра Последний раз редактировалось Ципихович Эндрю; 22.12.2023 в 23:04. |
23.12.2023, 01:18 | #7 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Похоже не стоит надеяться на адекватный код от нее.
Передать сразу список замен. Но по замерам улучшения не наблюдается. Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 23.12.2023 в 10:52. Причина: забыл пофиксить код в timeit |
23.12.2023, 08:56 | #8 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,119
|
|
23.12.2023, 09:36 | #9 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Я вам открою пару секретов:
Может вы хочь чуть начнете вязыках разбираться, а не копировать что-то откуда-то? Начните с выноса вычисления длин из цикла. |
23.12.2023, 11:12 | #10 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Так питон не так уж плох
Вызов с-кода не бесплатен, 80% времени уходит на подготовку данных для вызова: Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как в PySimpleGUI добавить код замены ссылки в скрипте Python | satfan | Python | 0 | 12.12.2021 13:36 |
[c++] Транспонирование матрицы. Нужно разобраться в коде, напишите пожалуйста что делает каждая строка | Enni | Общие вопросы C/C++ | 6 | 10.09.2016 17:59 |