我正在编写代码,我在后台打开一个文本文件
f = open(FILENAME, 'r')
我正在寻找写出某些内容的特定行。
文件1中的示例:
错误您可以在下半部分211547中的部分鼻子546516547中找到错误
文件2中的例子:
元素51423165
中的文件中断错误3215467
所以我需要数字之前的单词。 有任何想法吗? 一切都会帮助我。谢谢。
答案 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]