Найти - Пользователи
Полная версия: Парсинг информации из текстовых файлов (+композиция/декомпозиция)
Начало » Центр помощи » Парсинг информации из текстовых файлов (+композиция/декомпозиция)
1
not42
Добрый день, уважаемые участники сообщества.
Для расширения границ профессиональной компетенции (я переводчик, который пытается вырасти в инженера локализации) приходится в сжатые сроки осваивать Python для конкретных целей: парсинга, композиции и декомпозиции текстовой информации.

Задача следующая:
Необходимо из каталога (включающего неограниченное количество подкаталогов) извлечь информацию из файлов определенного типа (.txt, .lua), заключенную в двойные кавычки, в отдельный файл.
Также меня интересует, как можно получить адрес извлеченного токена (куска текста), чтобы затем произвести запись в точное место исходного файла, и как можно изменить/задать кодировку полученного текста.

Мои навыки программирования (нулевые) не поспевают за ходом мысли, поэтому буду благодарен за любую помощь.
До последнего момента не хотел беспокоить профессиональное сообщество, но подумал, что такие задачи мне придется решать регулярно и нужно хвататься за возможность ускорить обучение. Еще раз спасибо!
doza_and
not42
включающего неограниченное количество подкаталогов
вы можете использовать listdir из модуля os или glob из модуля glob
not42
заключенную в двойные кавычки
Вопросы фильтрации текста решаются обычно модулем re после изучения языка регулярных выражений.
В сложных случаях можно использовать например pyparsing.
not42
как можно получить адрес извлеченного токена (куска текста),
re позволяет получить позицию.
not42
чтобы затем произвести запись в точное место исходного файла
Это невозможно. Точнее обычные файлы не имеют эффективной функции добавления / изменения текста в середине файла. Поэтому программисты никогда этого не делают.
Текст обычно загружается в память там обрабатывается, и только потом записывается.
not42
и как можно изменить/задать кодировку полученного текста.
У текста в оперативной памяти нет кодировки. (Если быть точнее то используется unicode). Кодировку можно задать при чтении из файла или при запись в файл. Операции открытия файла имеют ключик encoding.
py.user.next
doza_and
вы можете использовать listdir из модуля os или glob из модуля glob
os.walk() + (os.path.splitext() | re.search())

not42
Необходимо из каталога (включающего неограниченное количество подкаталогов) извлечь информацию из файлов определенного типа (.txt, .lua)
Попробуй для начала вывести на экран полные пути к нужным файлам.
Это самое простое во всей этой задаче.

Так-то задача простая, но вот это
not42
я переводчик, который пытается вырасти в инженера локализации
делает неподъёмными даже элементарные вещи. Здесь нужно по-другому думать.

У тебя должно быть три программы:
1. Одна добывает пути к файлам.
2. Вторая проводит преобразования с одним файлом.
3. Третья передаёт пути, добытые первой программой, во вторую, а затем сохраняет полученный результат.
И эти программы нужно объединить в один скрипт.
not42
py.user.next и doza_and, спасибо за помощь, буду разбираться! Вода камень точит, а в моей работе воды много
Isem
doza_and
Это невозможно. Точнее обычные файлы не имеют эффективной функции добавления / изменения текста в середине файла. Поэтому программисты никогда этого не делают.

Никогда не давайте советов космического масштаба, а то вы выглядите клоуном.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB