gpt4 book ai didi

python - 使用Python正则表达式检查文件中的字符串

转载 作者:行者123 更新时间:2023-11-30 23:34:28 31 4
gpt4 key购买 nike

我正在使用 Python 正则表达式来检查一个日志文件,该文件包含 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 是所需的输出。

最佳答案

您的正则表达式存在一些问题。试试这个:

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

这只会获取连接到 .exe 的文本从单词边界 ( \b ) 开始并抓取所有非空格字符 ( \S )。此外,当您有.exe时而不是\.exe.作为通配符而不是字面句点进行匹配。

关于python - 使用Python正则表达式检查文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18086183/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com