使用python从文本文件中提取细节

Mco*_*orz 1 python parsing

我有一个.txt文件,其中的内容属于这种类型:

DIRN straight-2
FOR minutes-5
DO crossing-6
WHAT Hall-7-13
DO take-10
WHAT Hall-3-15
Run Code Online (Sandbox Code Playgroud)

我想要的是另一个.txt文件,可以在python的帮助下生成,将其作为最终内容:

DIRN straight
FOR minutes
DO crossing
WHAT Hall-7
DO take
WHAT Hall-3
Run Code Online (Sandbox Code Playgroud)

即,我想删除每行中包含连字符的最后一个连字符" - "之后的所有内容.

请帮我解决python代码,并提前感谢您的帮助.

daw*_*awg 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
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式在Python中执行非正则表达式:

for line in s.splitlines():
    line=line.rpartition('-')[0] if '-' in line else line
    print(line)
Run Code Online (Sandbox Code Playgroud)

或者 - 可能还是更好:

for line in s.splitlines():
    line=line[:line.rindex("-")] if '-' in line else line    
    print line
Run Code Online (Sandbox Code Playgroud)

正则表达式更具体,因为它只匹配-\d+字符串的末尾.

任何情况下,打印:

DIRN straight
FOR minutes
DO crossing
WHAT Hall-7
DO take
WHAT Hall-3
Run Code Online (Sandbox Code Playgroud)