Всем привет!
Когда я учился в колледже, я очень активно изучал английский язык. После достижения уровня pre-intermediate, я узнал о фрилансе и фриланс-площадках. Я решил заниматься переводом статей, инструкция и т.д. Возникла проблема в постоянном подсчете символов, формата файла и его верстке и я решил написать программу для автоматизации этих процессов на Python.
Алгоритм решения проблемы
Когда передо мной возникала проблема с подсчетом символов из разных файлов (txt, pdf,word), я всегда думал об ее автоматизации… Искал сервисы в интернете, способы упрощения данных этапов. В конце концов я решил написать программу, которая бы подходила бы полностью под мои потребности и ещё умела автоматический после подсчета выписывать отчет и сохранять его в отдельный файл!
На тот период я уже был немного знаком с пайтоном (Проходил курс на платформе “Udemy” и читал книгу Зед. А. Шоу “Легкий способ выучить Python”).
Первой задачей моей было внесение формулы расчета в программу, открытие txt файла и расчет символов внутри файла.
На первых этапах особо проблем не возникало, пока я не дошел до работы с файлами формата PDF и Word. Тогда мне пришлось начать использовать различные библиотеки для работы с файлами (Чтение/изменение). Первым этапом была работа с Word форматом, я нашел подходящую библиотеку, которая подходила под мои требования, она так и называлась “docx”. Я импортировал ее через pip (В принципе, как и все последующие библиотеки).
Стал следующий вопрос. Как программе определять, какой файл открывать и как? Я решил использовать условия для решения этой проблемы т.е. какое расширения файла использовалась, на тот этап кода программа и переходила.
При реализации возникало много проблем связанные с различным родом причин (кодировка, исключения библиотеки и т.д.).
Далее аналогичным способом добавил библиотеку для чтения PDF файлов. После этого произвел тестирование и оптимизацию (чистку от багов).
Переход от консоли к GUI
На первых этапах это было консольное приложение, но в итоге я решил добавить GUI и мне пришлось переписать немного код т.к. пришлось использовать PyQt5.
После этого, начал осваивать PyQt5, на основные этапы освоения, мне потребовалось 2-3 дня.
Я начал переписывать код и сразу вносить дополнительную фичу! Этой фичей было запись и сохранения отчета в отдельный txt файл, тем самым формировался быстрый и полный отчет для отправки клиенту по стоимости каждого задания.
Так же я реализовал способ выбора файла с помощью ввода, обзора или перемещения в поле/строку требуемого файла. Ввод цены за 1000 символов, цену верстки одной страницы (которые автоматический подсчитывались из файла).
Если вам интересно более подробное описание реализации GUI приложения - напишите об этом в комментарии.
Проект я назвал “Lingua Counter”.
Спасибо за прочтение!