读取文件行并在数字前获取单词

时间:2018-05-30 12:12:18

标签: python arrays list

我正在编写代码,我在后台打开一个文本文件

f = open(FILENAME, 'r')

我正在寻找写出某些内容的特定行。

文件1中的示例:

  

错误您可以在下半部分211547中的部分鼻子546516547中找到错误

文件2中的例子:

  

元素51423165

中的文件中断错误3215467

所以我需要数字之前的单词。 有任何想法吗? 一切都会帮助我。谢谢。

3 个答案:

答案 0 :(得分:2)

迭代每一行并使用下面的列表理解:

>>> line = 'Error you can find the Error in Section Nose 546516547 in Lower Part 211547'
>>> line = line.split(' ')
>>> [line[i-1] for i, e in enumerate(line) if e.isdigit()]
['Nose', 'Part']

您也可以使用正则表达式:

>>> re.findall(r'([\w]+)\s[0-9]+', line)
['Nose', 'Part']

答案 1 :(得分:0)

您可以使用标准库中的re(正则表达式)模块执行此操作:

import re

regex = r"(\w+)(?=\s+\d)"  # Find words followed by space(s) and number.
with open(FILENAME, 'r') as f:
    for line in f:
        print(re.findall(regex, line))

答案 2 :(得分:0)

您还可以将所有单词转换为单词列表,然后找到数字的索引并返回列表[index-1]