Ищите программное обеспечение для пакетного преобразования дерева папок, содержащего файлы CHM в разных папках, в EPUB

1908
therobyouknow

У меня есть дерево папок с различными уровнями папок, и в каждой папке есть несколько файлов CHM (скомпилированные файлы HTML). Я хотел бы, чтобы инструмент для пакетного преобразования всех этих файлов в EPUB (книга), просто указав корень дерева папок, и чтобы инструмент поместил файлы EPUB в то же место, что и их аналоги CHM. Инструмент будет рекурсивно обходить дерево папок, чтобы найти каждый CHM и преобразовать его.

Я уже видел вопрос « Программное обеспечение для конвертирования файлов CHM в EPUB / Kindle» и ответы на него, но это не дает мне возможности указать корневую папку и иметь инструмент для просмотра подпапок, который находит каждый CHM и конвертирует его. Ни один из упомянутых инструментов не делает этого.

Наиболее близким к моим требованиям является: http://www.enolsoft.com/chm-to-epub-for-mac.html для Mac (я владелец MacBookPro и компьютеров под управлением Windows XP / 7 и Linux). Это разумная цена в 15 $. этот инструмент предоставляет возможность перетаскивать файлы и помещать преобразованный файл в исходную исходную папку, но, по-видимому, он не позволяет просто указать корневую папку и выполнить все преобразования файлов, находящихся под этим корневым каталогом. (Если я не получу лучшего ответа после того, как оставлю вопрос открытым в течение нескольких дней, я, вероятно, сам опубликую этот ответ и приму его.)

И бесплатно, и за оплачено все в порядке (при условии, что оплачено достаточно, т. Е. Около 50 $).

Mac, Windows или Linux, если инструмент прост в использовании, проверен и достаточно быстр.

1

1 ответ на вопрос

2
afrazier

Calibre поставляется с инструментом командной строки caliber-convert для преобразования различных типов файлов, включая CHM, во множество форматов электронных книг (плюс txt / html / rtf / pdf).

С этого момента тривиально распространить это на работу с целой иерархией файлов из выбранной вами оболочки ( cmd.exePowerShell, Bash и т. Д.).

+1 Спасибо @afrazier, ваше предложение выполнимо - я могу написать некоторый код для прохождения через дерево. Однако было бы полезно, если у Caliber (или где-либо еще) есть примеры вызовов командной строки, потому что нужно учитывать множество параметров (я перешел по вашей ссылке, чтобы перейти к преобразованию CHM в EPUB: http: //manual.calibre-ebook. com / cli / ebook-convert-19.html # chm-input-to-epub-output). Я бы предпочел не слишком экспериментировать с параметрами, чтобы получить наилучшие результаты, так как мне пришлось бы проверять результаты каждого имеющегося у меня файла CHM, что не идеально. therobyouknow 12 лет назад 0
... и вот хороший способ пройтись по дереву каталогов с помощью Python (2.x). Я буду использовать это: http://code.google.com/p/mylibs/source/browse/lib/Python/MyPyLib/DirectoryStatWalker.py therobyouknow 12 лет назад 0
Вероятно, самый простой способ выяснить полезную командную строку - это проверить различные настройки в графическом интерфейсе, а затем использовать подсказку с [этой страницы] (http://manual.calibre-ebook.com/conversion.html#how- options-are-set-сохранено-для-преобразования), чтобы узнать используемую командную строку. afrazier 12 лет назад 1
+1 принято. Я пойду с этой идеей. Я думаю, что у меня есть все, что мне нужно, с вашим указателем на документацию по инструментам командной строки Caliber и подпрограмму Tree Walker. Надеюсь, я смогу получить хорошие результаты без особых экспериментов с параметрами. Я могу попробовать или даже купить (за 15 $ это очень разумно) упомянутый инструмент на http://www.enolsoft.com/chm-to-epub-for-mac.html, а также для сравнения качества продукции. therobyouknow 12 лет назад 0
Большинство оболочек упрощают запуск команды на дереве. Для командной строки Windows вы должны сделать что-то похожее на: `for / r% i в (C: \ Path \ To \ *. Chm) do @ ebook-convert.exe"% ~ fi ""% ~ dpni. epub "[другие варианты здесь]` Почти каждая оболочка Unix поставляется с циклами, `find`,` xargs` и, возможно, другими способами обхода дерева без обращения к коду Python. Если вам удобнее с Python, это нормально, но в этом нет необходимости. afrazier 12 лет назад 1
+1 @afrazier в вашем ответном комментарии только что увидел это - я думаю, это поможет мне быстрее найти оптимальные настройки. therobyouknow 12 лет назад 0
Я начал изучать Python, поэтому реальные жизненные проекты, которые мне полезны, дают мне стимул учиться (по крайней мере, из чужого кода, как здесь, если не с нуля). Спасибо за другие варианты (еще один +1 отзыв) чтобы запустить команду для дерева - я знаю, что может быть несколько вариантов - спасибо, что поделились, они полезны и будут полезны в других ситуациях, когда Python недоступен или для простоты их развертывания в этой установке не будет необходимости , therobyouknow 12 лет назад 0
Просто для информации: глядя на то, что dpni и fi означают в ваших примерах сценариев - это мне помогло: http://stackoverflow.com/a/112120/227926 (не описывает dpni, но, по-видимому, dpni - это множество вариантов сразу .) Кроме того, http://www.dostips.com/DtTutoFunctions.php therobyouknow 12 лет назад 0
Ввод `help call` из командной строки также скажет вам все это. В командной строке достаточно хорошей встроенной справки. Кроме того, используйте один знак процента (`% i`) в командной строке. Используйте двойные знаки процента для именованных переменных (`%% i`). Параметры командной строки получают пронумерованные переменные с процентным значением (`% 1`,`% 2`, ...). afrazier 12 лет назад 0

Похожие вопросы