【发布时间】:2015-04-04 01:17:33
【问题描述】:
我刚才需要处理一个配置文件。由于它的生成方式,它包含如下行:
---(more 15%)---
第一步是去掉这些不需要的线条。作为一个轻微的转折,这些行中的每一行后面都有一个空白行,我也想删除它。为此,我创建了一个快速 Python 脚本:
skip_next = False
for line in sys.stdin:
if skip_next:
skip_next = False
continue
if line.startswith('---(more'):
skip_next = True
continue
print line,
现在,这可行,但它比我希望的更hacky。难点在于,在循环行的时候,我们希望一行的内容影响下一行。因此我的问题是:一个循环迭代影响另一个循环迭代的优雅方式是什么?
【问题讨论】:
-
有什么理由不能独立丢弃空行?我的意思是,我无法想象它们在文件的其他部分更有意义。 (虽然使用 Python,谁知道呢?空格可能是有意义的......)
-
@Telastyn - 在这种情况下,这会起作用。我对其他想法很感兴趣,因为我不时看到类似的问题,并且从未提出比“skip_next”等布尔变量更好的解决方案
-
你可以使用 grep 和 regex 来过滤,可能比使用 python 更容易
-
@omouse: ...然后他会有两个问题。这句话成为惯用语是有原因的。
-
你想在 '---(more' 之前去掉 just 个空格还是可以去掉 all 个空行?如果是后者,那么您可以通过单独忽略两者来使事情变得更容易。