删除python中从特定字符开始的字符串

2024-09-28 03:14:18 发布

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

我在一个文件中有以下数据:

Neighbor        V          TblVer  InQ OutQ Up/Down  State/PfxRcd
10.230.2.91     4          136041    0    0 35w6d        1178
CHN_RAY_901_1AC_CASR903R004#   exit

Neighbor        V          TblVer  InQ OutQ Up/Down  State/PfxRcd
10.229.5.239    4          890585    0    0 7w5d         1177
10.229.6.239    4          890585    0    0 7w5d         1173
CHN_MAR_905_1AC_CASR903R066#   exit

10.229.30.110

我必须删除从CHN开始的行,并得到如下输出:

Neighbor        V          TblVer  InQ OutQ Up/Down  State/PfxRcd
10.230.2.91     4          136041    0    0 35w6d        1178

Neighbor        V          TblVer  InQ OutQ Up/Down  State/PfxRcd
10.229.5.239    4          890585    0    0 7w5d         1177
10.229.6.239    4          890585    0    0 7w5d         1173

10.229.30.110

我试过:

b = ' '.join(word for word in content.split(' ') if not word.startswith('CHN'))

其中内容是我的数据,我想删除CHN,但它不工作。你知道吗

你能建议一下实现这个目标的方法吗。不使用正则表达式能做到这一点吗?提前谢谢。你知道吗


Tags: 文件数据exitworddownstateupray
3条回答

使用单个行而不是整个文件内容可能更容易:

with open("file") as f:
    lines = [line for line in f if not line.startswith("CHN")]
    filtered = "".join(lines)
file = """    Neighbor        V          TblVer  InQ OutQ Up/Down  State/PfxRcd
10.230.2.91     4          136041    0    0 35w6d        1178
CHN_RAY_901_1AC_CASR903R004#   exit

Neighbor        V          TblVer  InQ OutQ Up/Down  State/PfxRcd
10.229.5.239    4          890585    0    0 7w5d         1177
10.229.6.239    4          890585    0    0 7w5d         1173
CHN_MAR_905_1AC_CASR903R066#   exit

10.229.30.110
"""

output = [line for line in file.splitlines() if not line.startswith('CHN')]
print "\n".join(output)
for line in file:
  if not line[0:3] == "CHN":
    write_line
  else:
    remove_line

相关问题 更多 >

    热门问题