Как подсчитать поля в плоском файле с помощью Notepad++
Я работаю с большим количеством плоских файлов с разделителями каналов и выглядит примерно так:
John|Smith|01|01|1901|123 Road
Есть ли способ узнать, что '1901' - это 5-е поле этой записи, основанное на каналах ('|')?
Это было бы невероятно полезно и избавило бы меня от необходимости считать поля в больших файлах.
2 ответа
Чтобы найти номер поля на основе разделенных трубами полей, используйте Notepad++ 32-bit.
Установите плагин Python. Для этого:
- В меню выберите " Плагины" → "Диспетчер плагинов" → "Показать диспетчер плагинов".
- Установите флажок для Python Script и нажмите Установить
Создайте новый скрипт: в меню выберите " Плагины" → "Сценарий Python" → "Новый скрипт".
- Назовите сценарий
Pipe Position
и выберите Сохранить - Вставьте текст ниже в редактор и сохраните файл
- В меню выберите Плагины → Сценарий Python → Сценарии → Положение трубы.
"""
Notepad++ python script to count field based on delimiter.
Displays a message box based on the cursor position when invoked
"""
from Npp import *
import re
field_delimiter = '|'
current_pos = editor.getCurrentPos()
line_number = editor.lineFromPosition(current_pos)
line_start = editor.positionFromLine(line_number)
line_end = editor.getLineEndPosition(line_number)
line = editor.getTextRange(line_start, line_end)
index = current_pos - line_start
field_number = line.count(field_delimiter, 0, index)
notepad.messageBox("'%s' is field # %d" % (
line.split(field_delimiter)[field_number], field_number + 1))
Можно ли использовать более подходящий инструмент для работы?
Вместо N++ просто возьмите какой-нибудь прекрасный читатель CSV и хорошо проверите столбцы в сетке. Некоторые читатели свободны. Рекомендованный reCsvEditor может не только читать, но и редактировать файлы CSV, если это необходимо. Ключевым шагом в этом редакторе является выбор параметров на экране открытия файла в соответствии с вашим CSV-файлом: что такое разделитель, есть ли кавычки вокруг значений, есть ли разрывы строк внутри значений. Тогда ваш CSV файл открыт правильно. Тогда редактор также будет косвенно считать поля, вы можете легко увидеть, какое поле является самым правым. О редакторе не так много документации, автор предлагает опубликовать заявку или опубликовать ее на форумах.
Также, в качестве более простой альтернативы, вы можете попытаться связаться с другими редакторами CSV, если reCsvEditor кажется сложным. Например, я просто тестирую UniCsvEd 1.1, который в основном без денег.