Python - 在字符串中搜索匹配项

时间:2017-05-02 12:25:10

标签: python csv variables wildcard

只是想拿起python并使用它,但我很头疼。我有一个日志文件,我想搜索特定的用户名,但生成的字符串是下面的行(删除敏感位);

MSWinEventLog<009>5<009>Security<009>1157464<009>Mon Apr 24 00:37:27 2017<009>4672<009>Microsoft-Windows-Security-Auditing<009><009>N/A<009>Audit Success<009>Domain-Controller<009>17548<009>Special privileges assigned to new logon.<013><010><013><010>Subject:<013><010><009>Security ID:<009><009>S-9-8-21-9576767673-22488686304-465465468911-1103<013><010><009>Account Name:<009><009>MyUserNameSearch<013><010><009>Account Domain:<009><009>DomainName<013><010><009>Logon ID:<009><009>0x2176ca6b<013><010><013><010>Privileges:<009><009>SeSecurityPrivilege<013><010><009><009><009>SeBackupPrivilege<013><010><009><009><009>SeRestorePrivilege<013><010><009><009><009>SeTakeOwnershipPrivilege<013><010><009><009><009>SeDebugPrivilege<013><010><009><009><009>SeSystemEnvironmentPrivilege<013><010><009><009><009>SeLoadDriverPrivilege<013><010><009><009><009>SeImpersonatePrivilege<013><010><009><009><009>SeEnableDelegationPrivilege

这是用户名,我该如何搜索?到目前为止我有这个

import csv
import re

username = input('Enter Username\n')
regex = re.compile('.username.')
with open('C:/Path/To/Log/File.csv', newline='') as csvfile:
    logreader = csv.reader(csvfile, delimiter=',', quotechar='|')
    for row in logreader:
        for field in row:
            if field == username:
                print('found it')

如何在用户名的开头和开头引入通配符?

我希望脚本执行的操作是搜索给定的用户名并返回找到用户名的行。如果我可以使这个工作,那么我将看看如何返回行。

1 个答案:

答案 0 :(得分:0)

您可以if field == username替换if username in field行。

如果您的True字符串为username in字符串,则会始终返回field

field = 'abcd1234'
username = 'cd12'

if username in field:
    print('found it')

>>> found it