我正在为飞行模拟器构建场景,需要弄清楚如何编辑一个文本文件中的许多行(其中3579189行)。你知道吗
我有textclawler Pro,Node,Python SVN和Notepad++作为工具。你知道吗
原始、预编辑部分:
POLYGON_POINT -79.750000000217,42.017498354525,0
POLYGON_POINT -79.750000000217,42.016478251402,0
POLYGON_POINT -79.750598748133,42.017193264943,0
POLYGON_POINT -79.750000000217,42.017498354525,0
POLYGON_POINT -79.750000000217,42.085882815878,0
POLYGON_POINT -79.750000000217,42.082008734634,0
POLYGON_POINT -79.751045507507,42.082126409633,0
POLYGON_POINT -79.750281907508,42.083166574215,0
POLYGON_POINT -79.750781149174,42.084212672130,0
POLYGON_POINT -79.750000000217,42.085882815878,0
POLYGON_POINT -79.750000000217,42.088955814831,0
POLYGON_POINT -79.750456566883,42.087544672125,0
POLYGON_POINT -79.751642899173,42.088273325249,0
POLYGON_POINT -79.751461052298,42.088916154415,0
POLYGON_POINT -79.750000000217,42.088955814831,0
有了Notepad++的replace函数,添加POLYGON_POINT
行就很容易了。现在我需要一些帮助使它看起来像这样:
BEGIN_POLYGON
POLYGON_POINT -79.750000000217,42.017498354525,0
POLYGON_POINT -79.750000000217,42.016478251402,0
POLYGON_POINT -79.750598748133,42.017193264943,0
POLYGON_POINT -79.750000000217,42.017498354525,0
END_POLY
BEGIN_POLYGON
POLYGON_POINT -79.750000000217,42.085882815878,0
POLYGON_POINT -79.750000000217,42.082008734634,0
POLYGON_POINT -79.751045507507,42.082126409633,0
POLYGON_POINT -79.750281907508,42.083166574215,0
POLYGON_POINT -79.750781149174,42.084212672130,0
POLYGON_POINT -79.750000000217,42.085882815878,0
END_POLY
BEGIN_POLYGON
POLYGON_POINT -79.750000000217,42.088955814831,0
POLYGON_POINT -79.750456566883,42.087544672125,0
POLYGON_POINT -79.751642899173,42.088273325249,0
POLYGON_POINT -79.751461052298,42.088916154415,0
POLYGON_POINT -79.750000000217,42.088955814831,0
即在每个块前面加BEGIN_POLYGON
,在每个块后面加END_POLY
。你知道吗
我该怎么做?你知道吗
使用
sed
的快速解决方案cat -s
将所有空行压缩为一行我将使用
itertools.groupby
(仅使用带有if k
条件的非空组)按是否为空对行进行分组,并为每个组添加页眉/页脚。然后使用itertools.chain
展平组key = lambda l : bool(l.strip()))
是分组键:test for empty line but for line termination这种方法不需要完全读取文件,因此适合于非常大的文件。它逐行处理文件,这样就不会占用内存。你知道吗
相关问题 更多 >
编程相关推荐