Форум сайта python.su
Доброго времени суток!
Для решения таких задач на виндоусе есть следующие решения, не требующие офиса от микрософта:
Программа_____________стоимость
Total Doc Converter всего 1500.00 рублей
Okdo Document Converter Professional 79.95 $
Doxillion Document Converter 2.17 $29.99 USD
Ultra Document To Text Converter 2.0.2010.1127 $29.95 USD
Free Word/Doc Excel/Xls PowerPoint/PPT To Text Converter 5.8 $49.95 USD
Doc2Txt 1.0 $29.00 USD
CZ Document Converter V5.0 Only $260, 30-day money-back guarantee.
Вопрос: почему так дорого?
Предлагаю свою консольную программку, пожалуйста. Бесплатно
В основном проблема с doc: в разные года микрософты использовали разные кодировки, а расширение всё то же doc. В текстах указания на год выпуска не находил, видимо зашифровано.
Работает так себе, не айс, но кроме doc-ов результат получается вполне приличный.
Для 3 питона.
P.S.: Мой профиль - лингвистика. Никакого технического образования не имею, а питоном временами занимаюсь просто для удовольствия или когда для какой-то задачи без питона не обойтись. Поэтому прошу строго не судить.
Если появятся хорошие предложения по улучшению кода - мне будет интересно.
Спасибо.
Офлайн
Вот скрипт.
Прикреплённый файлы:
pyall2txt.py (3,9 KБ)
Офлайн
Рекомендации:
1. Ознакомиться с PEP8 ибо читать код сложно
2. Множественное присваивание.
3. Менеджер контекстов.
4. ООП даст Вам крылья.
5. global вообще плохо. Очень плохо.
6. Ну и по-мелочи много всяких бяк
P.S. Хотя для первого раза очень не дурно.
P.S.S. Хотите - можно более детально. Только уже по-скайпу. Ибо времени писать час то, что можно рассказать за 5 минут нет. Если надумаете, можете кинуть свой скайп в личку. Только здесь отписаться не забудьте. А то из лички письма бывает уходит в спам.
Отредактировано 4kpt_II (Май 24, 2014 01:33:42)
Офлайн
Если встать на формальную точку зрения то преобразование в txt вообще непонятно что. Большая часть форматов исходно уже текстовая, но содержит разметку.
Думаю дорого, потому что редко встречается. А редко встречается потому что почти никому не нужно.
Обычно нужно не выбросить разметку, а преобразовать из одной формы в другую см.
http://ru.wikipedia.org/wiki/Pandoc
Офлайн
Pandoc - сильная штука. Когда нужно было, то в сети попадался только мусор. Но все равно doc - это отдельная история, формат закрытый. Pandoc с ним не работает. В doc-ах блок текста расположен в одном месте, разметка и прочее в другом, ещё и зашифровано. И в разных версиях по-разному.
Что плохого в присваивании? И как без них можно обойтись?
global использую потому, что строка text - это внутренняя переменная функции, поэтому класс MyHTMLParser ничего в неё записать не может. Как здесь можно обойтись без global?
Классы и менеджер контекстов. Обе темы сложные. О первых представление имею, но не вижу смысла такую сложную вещь использовать в программе на 100 строчек. Зачем и в какой форме, если то же самое можно сделать функцией?
На счёт менеджера контекстов - я не понимаю, как работает эта штука. Разбирал примеры, читал книжки - всё равно не понимаю. Я не прошу объяснять - для получения навыка учебники есть и остается только найти много времени. Вопрос в другом: зачем его использовать, если работает без него? Для чего он нужен именно в этой программке?
Офлайн
evgen34
Что плохого в присваивании? И как без них можно обойтись?
evgen34
global использую потому, что строка text - это внутренняя переменная функции, поэтому класс MyHTMLParser ничего в неё записать не может
evgen34
но не вижу смысла такую сложную вещь использовать в программе на 100 строчек.
evgen34
О первых представление имею
evgen34
Зачем и в какой форме, если то же самое можно сделать функцией?
evgen34Он гарантирует закрытия файла, которые Вы открываете в системе. Это как минимум.
Вопрос в другом: зачем его использовать, если работает без него?
Отредактировано 4kpt_II (Май 24, 2014 13:37:08)
Офлайн
Уважаемый 4kpt_II! Я не хочу вас и других участников беседы убедить или что-то доказать. Для меня важно понимать то, что я делаю. Если я что-то не понимаю - я этим не пользуюсь. Просто что-то делать, потому что так говорят - мне сложно. Книжки - это одно, а когда человек объяснит - это совершенно другая вещь, и другой результат.
Мне, конечно, хочется питоном пользоваться продуктивно, с меньшей затратой сил на ремонт ошибок, используя надёжные решения. Это, как максимум. Для этого одних учебников и примеров недостаточно.
Как минимум - у меня есть оригинальная, хорошая программа, написанная в помощь студенту-гуманитарию, каким и являюсь. Этот конвертер - лишь одно из звеньев. Как вы поняли качество моего кода не на высоком уровне, поэтому, в какой-то степени, людям его показывать стыдно. Зато есть идея и желание.
Программка работает, ну может быть на 95% от того, как хотелось бы. Хочу её довести до ума и, конечно, поделиться с людьми: здесь, или может сайт для неё сделаю. Если бы вы мне помогли - я буду благодарен. Только денег у меня нет - я студент не из богатых. Думаю, что это не важно.
В любом случае благодарю за беседу.
Офлайн
evgen34Это можно только приветствовать.
Хочу её довести до ума и, конечно, поделиться с людьми
f=open("a.dat","w") f.write("(1233") j=2/0 f.write(")") f.close()
with open("a.dat","w") as f: f.write("(1233") j=2/0 f.write(")")
Отредактировано doza_and (Май 24, 2014 18:13:10)
Офлайн
evgen34http://msdn.microsoft.com/en-us/library/cc313153.aspx
Но все равно doc - это отдельная история, формат закрытый.
evgen34Программу всегда нужно представлять как часть, которую понадобится куда-то включить, не зная особенностей реализации.
О первых представление имею, но не вижу смысла такую сложную вещь использовать в программе на 100 строчек.
Офлайн
Открывать для чтения / записи буду в конструкции with. Как будет доступ к компьютеру - перепишу.
Будет желание и свободное время - подскажите как можно использовать классы именно в этой программке.
Спасибо.
Офлайн