我处理了很多以竖线分隔的平面文件,看起来像这样:
John|Smith|01|01|1901|123 Road
有没有办法根据竖线(“|”)找出“1901”是该记录的第 5 个字段?
这将非常有用并且使我免于计算大量文件上的字段。
答案1
使用 Notepad++ 32 位根据管道分隔的字段查找字段编号。
安装 python 插件。操作如下:
- 从菜单中选择插件→插件管理器→显示插件管理器
- 勾选Python 脚本并点击安装
创建新脚本:从菜单中选择插件→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))
答案2
您是否可以使用更适合该工作的工具?
不用 N++,只要买点好东西CSV 阅读器并在网格中很好地检查列。有些阅读器是免费的。推荐编辑器如果需要,不仅可以读取,还可以编辑 CSV 文件。该编辑器的关键步骤是根据您的 CSV 文件在文件打开屏幕上选择选项:分隔符是什么,值周围是否有引号,值内是否有换行符。然后您的 CSV 文件就可以正确打开了。然后编辑器还会间接计算字段,您可以轻松看到哪个字段是最右边的。关于编辑器的文档不多,作者建议发票或发到论坛。
另外,作为一种更简单的选择,你可以尝试其他 CSV 编辑器如果 reCsvEditor 看起来很复杂。例如,我只是在测试UniCsvEd 1.1这基本上是不需要花钱的。