我有一个.txt文件,其中的内容属于这种类型:
DIRN straight-2
FOR minutes-5
DO crossing-6
WHAT Hall-7-13
DO take-10
WHAT Hall-3-15
我想要的是另一个.txt文件,可以在python的帮助下生成,将其作为最终内容:
DIRN straight
FOR minutes
DO crossing
WHAT Hall-7
DO take
WHAT Hall-3
即,我想删除每行中包含连字符的最后一个连字符“ - ”之后的所有内容。
请帮我解决python代码,并提前感谢您的帮助。
答案 0 :(得分:7)
在Python 2或3中,这有效:
s='''DIRN straight-2
FOR minutes-5
DO crossing-6
WHAT Hall-7-13
DO take-10
WHAT Hall-3-15'''
import re
for line in s.splitlines():
line=re.sub(r'^(.*)-\d+$',r'\1',line)
print line
你可以用这种方式在Python中执行非正则表达式:
for line in s.splitlines():
line=line.rpartition('-')[0] if '-' in line else line
print(line)
或者 - 可能还是更好:
for line in s.splitlines():
line=line[:line.rindex("-")] if '-' in line else line
print line
正则表达式更具体,因为它只匹配字符串末尾的-\d+
。
任何情况下,打印:
DIRN straight
FOR minutes
DO crossing
WHAT Hall-7
DO take
WHAT Hall-3