Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
2 / 2 / 0
Регистрация: 27.04.2018
Сообщений: 10

Не работает сравнение строк

02.03.2020, 23:35. Показов 1942. Ответов 7

Студворк — интернет-сервис помощи студентам
Ребят помогите разобраться, это какой-то кошмар сижу уже часов 5 ломаю голову.
Есть html документ, необходимо из него удалить определенную ссылку, тот код который я скину, далек от идеала, но это из-за попыток разобраться почему не работает перепробовал уже все что мог, облазил весь интернет.
Так вот
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 def change_file (html1,link):
        x=link.find('.')
        x1=link.find('/',x)
        link1=link[x1:]
        f_read = open("input.html",'r',encoding='utf8')
        l=[]
        for line in f_read:
            l.append(line)
        f_read.close()
        print(link1)
        for i in range (len(l)):
            l[i]=l[i].replace(str(link1),'ссылка удалена')
        handle = open("output.html", "w")
        for i in range (len(l)):
            handle.write(l[i])
        handle.close()
        return html1
Вот есть такая функция в программе, на переменную html1 внимание не обращайте, была создана раньше
Так как все ссылки в html записываются без домена, я его удаляю, дальше считываю файл построчно, записывая в лист, затем в каждом элементе листа пытаюсь найти эту ссылку, но он ее не видит, при этом если в реплейсе заменить link 1, на, допустим "script", то он спокойно по всему файлу меняет скрипты. Саму ссылку проверял 1000 раз, даже выводил ее инпутом и искал поиском по файлу(думал что разные кодировки), но он по-прежнему продолжает в упор её не видеть. Кто-то сталкивался с такой проблемой?
На скринах продемонстрировал как работает со строкой "script" и как не работает со ссылкой
Миниатюры
Не работает сравнение строк   Не работает сравнение строк   Не работает сравнение строк  

Не работает сравнение строк  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2020, 23:35
Ответы с готовыми решениями:

Не работает сравнение строк
При почленном сравнении строк l=Console.ReadLine(); int kol=new int; double sum = new double; for (j = 0; j...

Не работает сравнение строк
Почему у меня не сравнивает строки между собой? Если строка стала меньше то "YES" иначе "NO" #include...

Не работает сравнение строк
Следующий код ничего не выводит: $text = "Пример текста"; for($i; $i < strlen($text); $i++) { if(strcmp(substr($text, $i, 1),...

7
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
03.03.2020, 07:39
У Вас link разве не строка? Зачем l[i]=l[i].replace(str(link1),'ссылка удалена') здесь str(link1)?

Добавлено через 1 минуту
Python
1
2
3
4
5
6
7
s = 'hgsdh'
print(s)
 
s1 = s[1:]
print(s1)
 
str(s1)
hgsdh
gsdh
'gsdh'
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
03.03.2020, 08:00
Бросается в глаза:
change_file является методом класса (не статичный метод); метод первым аргументом принимает не self, а html1 => метод change_file возвращает ссылку на объект.
0
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
03.03.2020, 08:02
Цитата Сообщение от ioprst Посмотреть сообщение
Бросается в глаза следующее:
change_file является методом класса (не статичный метод), а первым аргументом принимает не self, а html1 => метод change_file возвращает ссылку на объект.
А ведь на скринах реально ООП. Не заметил сразу.

Хотя ТС писал:
Цитата Сообщение от Andrey1309 Посмотреть сообщение
на переменную html1 внимание не обращайте,
Может там так и задумано))))
0
2 / 2 / 0
Регистрация: 27.04.2018
Сообщений: 10
03.03.2020, 08:51  [ТС]
это уже от отчаяния было сделано

Добавлено через 13 минут
Да там никак не задумано, я 0 в ооп, смотрю видео, и пытаюсь сделать похоже, просто не совсем понимаю когда надо делать этот self, когда не надо, так сказать в теории полный 0, мне лабу надо просто сдать, а методичек никаких нет
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
03.03.2020, 09:00
Цитата Сообщение от Andrey1309 Посмотреть сообщение
просто не совсем понимаю когда надо делать этот self, когда не надо
надо всегда, когда метод не является статичным (т.е. отсутствует декоратор @staticmethod)
0
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
03.03.2020, 11:23
Цитата Сообщение от ioprst Посмотреть сообщение
надо всегда, когда метод не является статичным (т.е. отсутствует декоратор @staticmethod)
либо когда не является методом класса, декоратор @classmetod
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
03.03.2020, 11:31
Цитата Сообщение от Andrey1309 Посмотреть сообщение
Так как все ссылки в html записываются без домена, я его удаляю, дальше считываю файл построчно, записывая в лист, затем в каждом элементе листа пытаюсь найти эту ссылку, но он ее не видит, при этом если в реплейсе заменить link 1, на, допустим "script", то он спокойно по всему файлу меняет скрипты. Саму ссылку проверял 1000 раз, даже выводил ее инпутом и искал поиском по файлу(думал что разные кодировки), но он по-прежнему продолжает в упор её не видеть. Кто-то сталкивался с такой проблемой?
Вряд ли. Просто никому в голову не приходит делать столько бесполезных действий.

P.S. Если хотите получить ответ по делу - никогда не пишите о своих жалких потугах что-то сделать.
Пишите про главную исходную задачу, а не про то, что вы там пытаетесь наговнокидить и как оно у вас, есс-во, не работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.03.2020, 11:31
Помогаю со студенческими работами здесь

Не работает сравнение строк
Не пойму в чем может быть причина. Такой вариант не работает, скажите где ошибка? Пожалуйста. procedure TForm1.Button2Click(Sender:...

Не работает сравнение строк
private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) { Gournal = Manager::get_instance(); ...

Не работает сравнение строк.
С клавиатуры вводятся две строки, содержащие некоторые слова. Слова перечислены через запятую. Исключить из первой строки слова,...

Не работает сравнение строк
Подскажите пожалуйста, почему не работает строка с условием ? (ввожу в консоли end, проверка условия не срабатывает) if (str ==...

Не работает сортировка по имени. Сравнение строк
сортировка по имени, но если уж вообще не возможно, то по дате hotel.h #include "stdafx.h" struct hotelStruct { char...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru