Поиск волонтерской помощи программиста (маленький скрипт)
- Natalia Novoselova
- Гуру
- Сообщения: 3020
- Зарегистрирован: 15 янв 2013, 20:14
- Репутация: 69
- Ваше звание: Лиса
- Откуда: **
- Контактная информация:
Поиск волонтерской помощи программиста (маленький скрипт)
Для развития природоохранной и природоохранно-геотехнологической онлайн библиотеки
(презентация на GIS-Lab, сайт)
очень требуется волонтерская помощь программиста, который сможет написать небольшой срипт.
Суть задачи:
Есть ряд файлов book_1.html
Нужно сделать скрипт, который мог бы автоматически брать папку с такими файлами и проводить внутри каждого файла одинаковую операцию: Удалять внутри каждого файла все символы <br>
Или заменить <br> на «ничего» (если описывать требуемую операцию ручным способом).
Всё.
* * *
Суть проблемы.
Сейчас платформа Calibre, на которой сделана онлайн библиотека, имеет ошибку создания множества символов <br> внутри html файлов при генерации каталогов для онлайн библиотеки.
В результате метаданные (описание книги на ее странице) получается с огромными пропусками между параграфами. Это некрасиво. И хочется это поправить.
Я сообщила об этой проблеме разработчику Calibre:
https://getsatisfaction.com/calibre2opd ... libre2opds
Проблема оказалась глубокой и принципиальной, он это выделил в отдельный запрос:
http://calibre2opds.myjetbrains.com/you ... ue/c2o-274
К сожалению, в конце он сообщил, что быстро это решить не получится. Что ошибка глубокая и потребует работы. То есть это можно ожидать в следующих релизах платформы, но как-то не наверняка. Но есть выход - написать такой скрипт, который будет очищать генерируемые html файлы от символов <br>. Сам он его не хочет делать, поскольку не хочет тратить силы на временные решения.
Если сможет кто-то помочь своими знаниями и написать такой срипт – для развития библиотеки и ее презентации в природоохранном сообществе это очень важно..
Пример такого файла дан в приложении (zip):
book_1_с br.html - файл , содержащий <br>
book_1_без br.html - желаемый результат после работы скрипта (удалены вручную все символы <br>).
В исходных каталогах они именуются book_1.html, book_2.html, book_3.html (для каждой книги)
Пример описания книги с ошибкой (ссылка на принт скрин страницы):
https://scontent.fcpq3-1.fna.fbcdn.net/ ... e=5838BDE3
И он же сейчас виден онлайн (ссылка на библиотеку со страницей данной книги)
http://www.green-forums.info/greenlib/g ... ok_11.html
И пример того же описания без злостных <br> (ссылка на принт скрин). Этого результата я добилась после ручного удаления симвоов <br> из html файла
https://scontent.fcpq3-1.fna.fbcdn.net/ ... e=58457A36
Нужен скрипт, поскольку таких файлов очень много (уже около 400 по числу книг), так же я постоянно вношу изменения в библиотеку при ее дополнении, т.е. генерирую все каталоги заново. Очевидно, что операцию по очищению надо повторять каждый раз.
(презентация на GIS-Lab, сайт)
очень требуется волонтерская помощь программиста, который сможет написать небольшой срипт.
Суть задачи:
Есть ряд файлов book_1.html
Нужно сделать скрипт, который мог бы автоматически брать папку с такими файлами и проводить внутри каждого файла одинаковую операцию: Удалять внутри каждого файла все символы <br>
Или заменить <br> на «ничего» (если описывать требуемую операцию ручным способом).
Всё.
* * *
Суть проблемы.
Сейчас платформа Calibre, на которой сделана онлайн библиотека, имеет ошибку создания множества символов <br> внутри html файлов при генерации каталогов для онлайн библиотеки.
В результате метаданные (описание книги на ее странице) получается с огромными пропусками между параграфами. Это некрасиво. И хочется это поправить.
Я сообщила об этой проблеме разработчику Calibre:
https://getsatisfaction.com/calibre2opd ... libre2opds
Проблема оказалась глубокой и принципиальной, он это выделил в отдельный запрос:
http://calibre2opds.myjetbrains.com/you ... ue/c2o-274
К сожалению, в конце он сообщил, что быстро это решить не получится. Что ошибка глубокая и потребует работы. То есть это можно ожидать в следующих релизах платформы, но как-то не наверняка. Но есть выход - написать такой скрипт, который будет очищать генерируемые html файлы от символов <br>. Сам он его не хочет делать, поскольку не хочет тратить силы на временные решения.
Если сможет кто-то помочь своими знаниями и написать такой срипт – для развития библиотеки и ее презентации в природоохранном сообществе это очень важно..
Пример такого файла дан в приложении (zip):
book_1_с br.html - файл , содержащий <br>
book_1_без br.html - желаемый результат после работы скрипта (удалены вручную все символы <br>).
В исходных каталогах они именуются book_1.html, book_2.html, book_3.html (для каждой книги)
Пример описания книги с ошибкой (ссылка на принт скрин страницы):
https://scontent.fcpq3-1.fna.fbcdn.net/ ... e=5838BDE3
И он же сейчас виден онлайн (ссылка на библиотеку со страницей данной книги)
http://www.green-forums.info/greenlib/g ... ok_11.html
И пример того же описания без злостных <br> (ссылка на принт скрин). Этого результата я добилась после ручного удаления симвоов <br> из html файла
https://scontent.fcpq3-1.fna.fbcdn.net/ ... e=58457A36
Нужен скрипт, поскольку таких файлов очень много (уже около 400 по числу книг), так же я постоянно вношу изменения в библиотеку при ее дополнении, т.е. генерирую все каталоги заново. Очевидно, что операцию по очищению надо повторять каждый раз.
- Вложения
-
- html files.zip
- (6.4 КБ) 378 скачиваний
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Поиск волонтерской помощи программиста (маленький скрипт
Код: Выделить всё
find . -type f -name '*.html' -exec sed -i 's/<br>//g' {} \+
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Поиск волонтерской помощи программиста (маленький скрипт
Вот простой Python-скрипт. Удаляет из всех html-файлов текущего каталога, где лежит сам скрипт (включая вложенные каталоги), все теги <br> (файлы перезаписываются). Запускается из командной строки в виде:
При острой терминалофобии лучше запускать, например, через IDLE.
Код: Выделить всё
python html_remove_br.py
Код: Выделить всё
import os
from glob import glob
import shutil
curr_dir = os.path.dirname(os.path.abspath(__file__))
infiles = [y for x in os.walk(curr_dir) for y in glob(os.path.join(x[0], '*.html'))]
for infile in infiles:
infile = r"%s" % infile
outfile = str(infile).replace('.html','_edit.html')
with open(infile, 'r') as f1, open(outfile, 'w') as f2:
for line in f1.readlines():
f2.write(line.replace('<br>',''))
shutil.move(outfile, infile)
Редактор материалов, модератор форума
- Natalia Novoselova
- Гуру
- Сообщения: 3020
- Зарегистрирован: 15 янв 2013, 20:14
- Репутация: 69
- Ваше звание: Лиса
- Откуда: **
- Контактная информация:
Re: Поиск волонтерской помощи программиста (маленький скрипт
Огромное спасибо, Александр !!!Александр Мурый писал(а):Вот простой Python-скрипт. Удаляет из всех html-файлов текущего каталога, где лежит сам скрипт (включая вложенные каталоги), все теги <br> (файлы перезаписываются).
Работает!
Я его записала в каталог с генерируемым файлами библиотеки и запустили по двум кликам мышки. Да, он так автоматически запустился через командную строку.Запускается из командной строки в виде:При острой терминалофобии лучше запускать, например, через IDLE.Код: Выделить всё
python html_remove_br.py
Проверила на компе, как выглядит сайт - теперь описания книг генерируются правильно. Загружу в обновленном виде на сайт.
Не возражаете, я передам ваш скрипт на форум Calibre. Пока они не решили эту задачу внутри платформы - смогут им пользоваться.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Поиск волонтерской помощи программиста (маленький скрипт
Не против, т.к. всё честно скопипастил из интернетов и немного доработалNatalia Novoselova писал(а):Не возражаете, я передам ваш скрипт на форум Calibre. Пока они не решили эту задачу внутри платформы - смогут им пользоваться.
Редактор материалов, модератор форума
- Natalia Novoselova
- Гуру
- Сообщения: 3020
- Зарегистрирован: 15 янв 2013, 20:14
- Репутация: 69
- Ваше звание: Лиса
- Откуда: **
- Контактная информация:
Re: Поиск волонтерской помощи программиста (маленький скрипт
Передала в той же теме последним сейчас сообщением.Александр Мурый писал(а):Не против, т.к. всё честно скопипастил из интернетов и немного доработалNatalia Novoselova писал(а):Не возражаете, я передам ваш скрипт на форум Calibre. Пока они не решили эту задачу внутри платформы - смогут им пользоваться.
https://getsatisfaction.com/calibre2opd ... libre2opds
- Игорь Белов
- Гуру
- Сообщения: 2230
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1503
- Откуда: Казань
Re: Поиск волонтерской помощи программиста (маленький скрипт
Не факт, что разработчики пользуются Питоном. А вот для скрипта Дениса подойдёт любая UNIX-подобная среда, хоть GnuWin под Windows, и у них это есть, — проект кросс-платформенный.Natalia Novoselova писал(а):Не возражаете, я передам ваш скрипт на форум Calibre. Пока они не решили эту задачу внутри платформы - смогут им пользоваться.
The purpose of computing is insight, not numbers
- Natalia Novoselova
- Гуру
- Сообщения: 3020
- Зарегистрирован: 15 янв 2013, 20:14
- Репутация: 69
- Ваше звание: Лиса
- Откуда: **
- Контактная информация:
Re: Поиск волонтерской помощи программиста (маленький скрипт
Игорь Белов писал(а):Не факт, что разработчики пользуются Питоном. А вот для скрипта Дениса подойдёт любая UNIX-подобная среда, хоть GnuWin под Windows, и у них это есть, — проект кросс-платформенный.Natalia Novoselova писал(а):Не возражаете, я передам ваш скрипт на форум Calibre. Пока они не решили эту задачу внутри платформы - смогут им пользоваться.
Да... но я, увы, не поняла, что мне делать с тем, что написал Денис.
То есть как его использовать?
Тут бы в самый раз вспомнить обновленые правила GIS-Lab, где не рекомендуют слишком краткие ответы, который вопрошающий не может понять.
Несомненно, Денису также большое спасибо. Наверное, если бы Александр не сделал бы более простой вариант, я бы с этим разобралась.
И его вариант также могу записать в тему форума Calibre (в т.ч. разработчик же может его, наверное, и как-то для постоянного решения, при желании, использовать, записав код внутрь кода платформы).. но сначала надо понять, что с ним вообще делать.
Хм.. да, по программированию пока как-то ближе к нулю по знаниям, хоть и есть желание взяться за это тоже. Может и придется для своих задач.
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Поиск волонтерской помощи программиста (маленький скрипт
bash (от англ. Bourne again shell, каламбур «Born again» shell — «возрождённый» shell) — усовершенствованная и модернизированная вариация командной оболочки Bourne shell. Одна из наиболее популярных современных разновидностей командной оболочки UNIX. Особенно популярна в среде Linux, где она часто используется в качестве предустановленной командной оболочки.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Поиск волонтерской помощи программиста (маленький скрипт
Да, просьба ко всем отвечающим не гнушаться краткого комментария.Natalia Novoselova писал(а): Тут бы в самый раз вспомнить обновленые правила GIS-Lab, где не рекомендуют слишком краткие ответы, который вопрошающий не может понять.
Редактор материалов, модератор форума
- Игорь Белов
- Гуру
- Сообщения: 2230
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1503
- Откуда: Казань
Re: Поиск волонтерской помощи программиста (маленький скрипт
Всё просто. Это даже не скрипт, а команда, которая вводится в консоли: Впрочем, для многократного использования можно сохранить её как скрипт:Natalia Novoselova писал(а):...я, увы, не поняла, что мне делать с тем, что написал Денис.
То есть как его использовать?
Код: Выделить всё
#!/bin/sh
find . -type f -name '*.html' -exec sed -i 's/<br>//g' {} +
sed изменяет файлы «на месте» ( -i ), заменяя "<br>" на пустую строку глобально, т.е. многократно во всём файле ( 's/<br>//g' ). При этом для неё подставляется имя файла, найденного find ( {} ). Плюс ( + ) предполагает использование более эффективной обработки за счёт запуска на исполнение после предварительного создания списка имён файлов, если этих файлов очень много.
Просто, ёмко, эффективно. Unix way.
Проекты, создающие среду Unix под Windows: Cygwin, MinGW/MSYS, GnuWin32. Лучше устанавливать из OSGeo4W, чтобы получить интегрированное окружение с QGIS и другими приложениями.
The purpose of computing is insight, not numbers
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Поиск волонтерской помощи программиста (маленький скрипт
Узнаю gis-lab по ответам вне контекста, которые нарочито не учитывают личность спрашивающего.
Вот вам видео-мурзилка, как сделать то же самое под Windows в GUI, используя бесплатный софт https://www.youtube.com/watch?v=9j8Djan7Pm0
(А то сейчас эта тема разрастется в заведомо тупиковую "bash/Python для чайников".)
Вот вам видео-мурзилка, как сделать то же самое под Windows в GUI, используя бесплатный софт https://www.youtube.com/watch?v=9j8Djan7Pm0
(А то сейчас эта тема разрастется в заведомо тупиковую "bash/Python для чайников".)
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
- Игорь Белов
- Гуру
- Сообщения: 2230
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1503
- Откуда: Казань
Re: Поиск волонтерской помощи программиста (маленький скрипт
ericsson писал(а):Узнаю gis-lab по ответам вне контекста, которые нарочито не учитывают личность спрашивающего.
Вот вам видео-мурзилка, как сделать то же самое под Windows в GUI, используя бесплатный софт https://www.youtube.com/watch?v=9j8Djan7Pm0
(А то сейчас эта тема разрастется в заведомо тупиковую "bash/Python для чайников".)
О чём вы, о каком контексте? Разве у разработчиков Calibre всё под Windows крутится? Мы ведь говорили о скрипте, которым Наташа решила с ними поделиться.trir писал(а):А ещё есть PowerShell
The purpose of computing is insight, not numbers
- Natalia Novoselova
- Гуру
- Сообщения: 3020
- Зарегистрирован: 15 янв 2013, 20:14
- Репутация: 69
- Ваше звание: Лиса
- Откуда: **
- Контактная информация:
еще про скрипт немного
Еще про скрипт немного (это можно внести в первую закрытую тему)
К этому посту Игоря Белова:
viewtopic.php?f=5&t=21416#p145992
Как именно ввести этот код в консоль? Так, я вхожу в папку, где лежат html файлы. И что нужно сделать, чтобы ввести код в консоль? У меня там нет никакой консоли, если что.
Я передам код Дениса Рыкова тоже, поскольку там сказали, что могут использовать его для основного решения (ну пусть у них будет выбор).
К этому посту Игоря Белова:
viewtopic.php?f=5&t=21416#p145992
Как именно ввести этот код в консоль? Так, я вхожу в папку, где лежат html файлы. И что нужно сделать, чтобы ввести код в консоль? У меня там нет никакой консоли, если что.
Я передам код Дениса Рыкова тоже, поскольку там сказали, что могут использовать его для основного решения (ну пусть у них будет выбор).
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей