为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕尼黑8549860 2022-08-11 17:45:25
我对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)
查看完整描述

1 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

首先,不要将要搜索的文本字符串作为第二个参数(可选的第二个参数是要使用的标志,例如)。其次,应该将 to 的调用从循环中取出,否则您将破坏预编译正则表达式的目的。第三,你问了多个问题,这通常是不受欢迎的。我将向您展示如何创建数字列表。如果您对如何从中创建CSV文件有单独的问题,请发布单独的问题。compilere.IGNORECASEcompile


import csv  

import re    

import glob 

import os 


inst_num = []

inst = re.compile('instruction:(\d+)') # compiled regex


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:

            match = inst.search(line) # do the search once

            if match:

                inst_num.append(match.group(1)) # add to list


查看完整回答
反对 回复 2022-08-11
  • 1 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号