Python 读取文件行并在数字之前获取单词
我正在写一个代码,在后台打开一个文本文件Python 读取文件行并在数字之前获取单词,python,arrays,list,Python,Arrays,List,我正在写一个代码,在后台打开一个文本文件 f = open(FILENAME, 'r') 我在找写东西的具体行 文件1中的示例: 错误您可以在211547下部的机头546516547部分中找到错误 文件2中的示例: 在元素51423165中的3215467处出现文件中断错误 所以我需要在数字前加上单词。 有什么想法吗? 一切都会帮助我的。谢谢。重复每一行并使用以下列表: >>> line = 'Error you can find the Error in Section N
f = open(FILENAME, 'r')
我在找写东西的具体行
文件1中的示例:
错误您可以在211547下部的机头546516547部分中找到错误
文件2中的示例:
在元素51423165中的3215467处出现文件中断错误
所以我需要在数字前加上单词。
有什么想法吗?
一切都会帮助我的。谢谢。重复每一行并使用以下列表:
>>> 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']
您可以使用标准库中的
re
(regex)模块执行此操作:
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))
您还可以将所有单词转换为一个单词列表,然后找到数字的索引并返回list[index-1]您的意思是,鼻子部分膝盖和元素将是输出?是的,没错,我的朋友我可能忘了说我正在使用蟒蛇。我会尝试这两种方法。我会让你知道哪一种或哪一种都不起作用。谢谢你。我猜你也可以为I,e在枚举(line)中做
[line[I-1],如果e.isdigit()]
是的,@RoadRunner谢谢,非常感谢您的努力,编辑了我的答案如果我找到了那个单词,现在查找该单词后面的数字(\w+\s+\d+),该怎么办。在这一点上,我建议您仔细阅读正则表达式,因为理解它们将给您足够的灵活性来创建自己的搜索。