使用Python正则表达式检查fi中的字符串

2024-09-29 10:27:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Python regex检查包含Windows命令tasklist输出的日志文件中是否有以.exe结尾的内容。此日志文件包含来自tasklist的多个调用的输出。当我得到一个字符串的列表,其中有.exe,我想写出来的文本文件后,检查该字符串是否已经存在于输出文件。它不是所需的输出,而是写出文本文件中已经存在的字符串的副本。(svchost.exe例如,它的目标是要有一个文本文件,其中包含由tasklist枚举的每个唯一进程的列表,文件中没有已写入的进程的重复项。在

import re

file1 = open('taskinfo.txt', 'r')
strings = re.findall(r'.*.exe', file1.read())
file1.close()
file2 = open('exes.txt', 'w+')
for item in strings:
    line_to_write = re.match(item, file2.read())
    if line_to_write == None:
        file2.write(item)
        file2.write('\n')
    else:
        pass

我使用print语句进行调试,并确保item是所需的输出。在


Tags: 文件字符串retxt列表进程openitem
1条回答
网友
1楼 · 发布于 2024-09-29 10:27:30

你的正则表达式有一些问题。试试这个:

strings = re.findall(r'\b\S*\.exe\b', file1.read())

这将只获取连接到.exe的文本,方法是从单词边界(\b)开始并获取所有非空格字符(\S)。另外,当您使用.exe而不是\.exe时,.是作为通配符匹配的,而不是文本句点。在

相关问题 更多 >