当字符串出现在CSV fi的同一行的另一列中的单元格中时,如何打印一列中单元格的内容

2024-09-26 22:13:13 发布

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

我是新来的,对编码/python还不熟悉

我有一个日志文件,其中包含列标题下的数据:

“操作创建日期用户ID审核数据”

我试图在AuditData中搜索一个IP地址,如果我得到一个匹配的地址,就在同一行打印UserId条目。因此,如果AuditData中存在IP地址,则只打印同一行中的用户ID

我尝试了几种不同的方法来做这个使用列表,枚举等没有成功。在阅读了一番之后,我得到了下面的代码,它几乎满足了我的需要,但还不够

我知道find命令正确地选择了IP地址,因为我已经用一个计数测试了它,并手动交叉检查了它

我不能只打印搜索结果所在行的UserId

我最初试过

print(" ".join(row) )

作为最后一行,但打印列标题的次数与CSV文件中的行数相同(40000行)

当我特别尝试打印userid时,它会打印整个userid列的内容。我有点理解它为什么这么做,但我似乎无法超越这一点

任何建议都将不胜感激

import csv
import mmap

with open('Logins_AuditLog_2019-07-29_2019-10-29.csv') as f:
    s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
    if s.find('103.70.136.101') != -1:
        reader = csv.DictReader(f)
        for row in reader:
            print(row)['UserIds']

Tags: 文件csv数据用户importid标题find

热门问题