我有一个看起来像这样的文本文件(但有 132k 行)
********
name : one
Place : city
Initial: none
********
name : two
Place : city2
Initial: none
********
name : three
Place : city3
Initial: none
Limits : some
我正在尝试将其转换为更友好的格式(Excel/数据库记录)。每个“记录”均由 ******** 分隔,90% 的记录的字段都是相同的,但有些记录有附加字段,例如第三条记录中的限制。
我想要一个 csv 或类似的输出,例如:
name,place,initial,limit
one,city,none,n/a
two,city2,none,n/a
three,city3,none,some
Python 是否更适合解析和操作这个?
Notepad++ 正则表达式将
([^*\r\n])\R([^*\r\n])
替换为 \1,\2
会将输入示例文本更改为:
********
name : one,Place : city,Initial: none
********
name : two,Place : city2,Initial: none
********
name : three,Place : city3,Initial: none,Limits : some
随后可以使用正则表达式 ^\*\*\*\*\*\*\*\*$
进行标记(使用 menu => Search =>
Mark...),最后删除标记的行(使用 menu => Search => Bookmark => 删除书签行)。
您可能需要整理文本的开头和结尾,包括添加列标题行。
变化:
行首或行尾的空格可能会导致不必要的更改,因此最好将其删除。使用菜单 => 编辑 => 空白操作 => 修剪前导和尾随空格。
某些行的星号数量可能不同。因此,也许将标记正则表达式更改为
^\*\*\*\*\*\*\**$
。调整 \*
的数量以匹配源文本中的最小值。