[英]Remove lines in a string that start with certain characters
我试图删除以某些字符开头的字符串中的所有行。 我尝试了下面的代码块,但无法正常工作。 我的代码只应打印"Any thanks
”作为结果,但它会输出整个原始文本。
text = """Any thanks \n first_************ \n last_************ has \n"""
from io import StringIO
s = StringIO(text)
for line in (s):
if not line.startswith(' first_') \
or not line.startswith(' last_'):
print(line)
每个字符串都会充实该条件, or
这两个条件是互斥的-使用and
组合您的条件:
if not line.startswith(' first_') \
and not line.startswith(' last_'):
您的or
语句始终返回True
。 例如,如果该行以' first_'
not line.startswith(' first_')
开头,则not line.startswith(' last_')
False
, not line.startswith(' last_')
True
。 False or True
计算结果为True
。
有两种写方法,但是最直接的方法是重写if语句:
for line in (s):
if not (line.startswith(' first_') or line.startswith(' last_')):
print(line)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.