在 python 中对多个文本文件使用正则表达式来解析和收集要添加到 Excel 中的数据

我对python非常陌生,我需要使用正则表达式。


我在一个目录中有多个.txt文件需要解析。这些.txt文件中的每一个都有多次出现的单词“指令”。我需要抓取“指令”一词后面的数字,并将其添加到将在excel中显示的列表中。这是以这样的方式完成的,我有一列“指令”,其中包含所有指令编号,并且我有一行所有.txt文件名。我最终需要在指令编号前面加上一个“是”或“否”,如果它存在于特定的.txt文件中。


我想知道如何获取“指令”一词后面的数字并将其添加到列表中(也许)。稍后使用此列表来制定Excel文件。编写此正则表达式指令的方法是什么?


这是我到目前为止的代码


import csv  

import re    

import glob 

import os 


inst_num = []


os.chdir (r"C:\Users\10002\Desktop\work\scripts")

for file in glob.glob("*.txt"):

    with open (file, 'r') as f: 

        for line in f:

            inst = re.compile ('instruction:(\d+)',line)

            if inst.search(line) is not None:

                inst_num = inst.search(line).group(1)


慕尼黑8549860
浏览 147回答 1
1回答

慕容森

首先,不要将要搜索的文本字符串作为第二个参数(可选的第二个参数是要使用的标志,例如)。其次,应该将 to 的调用从循环中取出,否则您将破坏预编译正则表达式的目的。第三,你问了多个问题,这通常是不受欢迎的。我将向您展示如何创建数字列表。如果您对如何从中创建CSV文件有单独的问题,请发布单独的问题。compilere.IGNORECASEcompileimport csv  import re    import glob import os inst_num = []inst = re.compile('instruction:(\d+)') # compiled regexos.chdir (r"C:\Users\10002\Desktop\work\scripts")for file in glob.glob("*.txt"):    with open (file, 'r') as f:        for line in f:            match = inst.search(line) # do the search once            if match:                inst_num.append(match.group(1)) # add to list
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python