如何删除与第一行一起被注释掉的行?

2024-09-24 22:20:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个以下格式的文件:

output data 
#comment1
#note3
#message5
#email2
1   5   7
10  4   1
2   6   1

我想删除第一行(包含单词output)和所有注释掉的行。最终文件应如下所示:

1   5   7
10  4   1
2   6   1

有没有一种简单的方法可以使用shell和/或python实现这一点?提前感谢您的帮助


Tags: 文件方法outputdata格式shell单词email2
2条回答

使用sed

sed  '1d;/^[[:space:]]*#/d' file
  • 1d->;删除第一行
  • /^[[:space:]]*#/d->;删除以#开头的所有行,可以选择前面加空格

下面是一个使用Python的解决方案。我不确定您是否要将内容保存回去。如果这样做,只需将结果字符串写回文件

首先打开文件并读取其内容:

In [8]: with open("file", "r") as f:
   ...:     contents = f.read()
   ...:     

然后按换行符拆分行,并删除所有以注释开头的行:

In [11]: mod_contents = [row for row in contents.split('\n') if not row.startswith("#")]

然后连接生成的行:

In [14]: "\n".join(mod_contents[1:])

相关问题 更多 >