在 Transpose Notepad++ 中转置?

问题描述 投票:0回答:1

我有一个看起来像这样的文本文件(但有 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 是否更适合解析和操作这个?

python notepad++
1个回答
0
投票

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 => 删除书签行)。

您可能需要整理文本的开头和结尾,包括添加列标题行。

变化:

行首或行尾的空格可能会导致不必要的更改,因此最好将其删除。使用菜单 => 编辑 => 空白操作 => 修剪前导和尾随空格

某些行的星号数量可能不同。因此,也许将标记正则表达式更改为

^\*\*\*\*\*\*\**$
。调整
\*
的数量以匹配源文本中的最小值。

© www.soinside.com 2019 - 2024. All rights reserved.