我看到一个字符串:
EVENTS: RAID
Volume Set Information
Volume Set Name : ARC-1120-VOL#00
Raid Set Name : Raid Set # 00
Volume Capacity : 1.0GB
SCSI Ch/Id/Lun : 00/00/00
Raid Level : Raid5
Stripe Size : 64K
Member Disks : 3
Cache Mode : Write Back
Tagged Queuing : Enabled
Volume State : Degraded
Volume Set Information
Volume Set Name : ARC-1120-VOL#01
Raid Set Name : Raid Set # 00
Volume Capacity : 5.0GB
SCSI Ch/Id/Lun : 00/00/01
Raid Level : Raid5
Stripe Size : 64K
Member Disks : 3
Cache Mode : Write Back
Tagged Queuing : Enabled
Volume State : Degraded
当我完成一个string.strip(“EVENTS:RAID \ n”)时,我得到了这个结果:
olume Set Information
Volume Set Name : ARC-1120-VOL#00
Raid Set Name : Raid Set # 00
Volume Capacity : 1.0GB
SCSI Ch/Id/Lun : 00/00/00
Raid Level : Raid5
Stripe Size : 64K
Member Disks : 3
Cache Mode : Write Back
Tagged Queuing : Enabled
Volume State : Degraded
Volume Set Information
Volume Set Name : ARC-1120-VOL#01
Raid Set Name : Raid Set # 00
Volume Capacity : 5.0GB
SCSI Ch/Id/Lun : 00/00/01
Raid Level : Raid5
Stripe Size : 64K
Member Disks : 3
Cache Mode : Write Back
Tagged Queuing : Enabled
Volume State : Degraded
问题:为什么“音量集信息”的V消失了?
如您所见,我想删除第一行,如果有人知道更好的方法吗? (我知道这里有很多“pythonic”家伙......给我你最好的镜头=)
答案 0 :(得分:3)
因为strip
的参数是要删除的字符串,而你的参数包含“V”。
为什么你传递那个字符串呢?
答案 1 :(得分:2)
您是否阅读过the documentation of strip()
?
它会删除您提供的任意数量的字符,因此每个.strip("EVENTS: RAID\n")
,每E
,每V
,每E
N
条, ......直到发现一个角色不在那里!这就是V
Volume Set Information
失踪的原因。
请尝试replace(string, "EVENTS: RAID\n", "", 1)
。
答案 2 :(得分:1)
string.strip()
从字符串的开头或结尾删除给定字符的所有实例。
尝试一下
的内容linebreak_pos = string.find("\n")
if linebreak_pos != -1:
string = string[linebreak_pos:]
或者如果你想要快速和肮脏的东西,
string = "\n".join(string.split("\n")[1:])
答案 3 :(得分:1)
Strip()
将删除与其参数字符串中指定的某个字符匹配的所有前导字符。由于'V'是其中之一(在EVENTS中),它会被剥离。
您要做的是更换领先的“EVENTS:RAID \ n”。你可以使用正则表达式。
答案 4 :(得分:0)
行为绝对正确。
strip(chars)应该剁掉'chars'中指定的所有尾随/前导字符。 它不是关于执行string.replace()操作。由于'V'在'chars'中被特定,你也将失去第一个'V'。如果你不相信,请回来查看string.strip()文档。