小编SG8*_*G84的帖子

Python中最有效的迭代大文件的方式(10GB +)

我正在编写一个Python脚本来浏览两个文件 - 一个包含UUID列表,另一个包含大量日志条目 - 每行包含一个来自另一个文件的UUID.该程序的目的是从file1创建UUIDS列表,然后每次在日志文件中找到UUID时,每次找到匹配时增加相关值.

长话短说,计算每个UUID出现在日志文件中的次数.目前,我有一个列表,其中填充了UUID作为键,并且"点击"作为值.然后是另一个循环,它迭代日志文件的每一行,并检查日志中的UUID是否与UUID列表中的UUID匹配.如果匹配,则递增该值.

    for i, logLine in enumerate(logHandle):         #start matching UUID entries in log file to UUID from rulebase
        if logFunc.progress(lineCount, logSize):    #check progress
            print logFunc.progress(lineCount, logSize)  #print progress in 10% intervals
        for uid in uidHits:
            if logLine.count(uid) == 1:             #for each UUID, check the current line of the log for a match in the UUID list
                uidHits[uid] += 1                   #if matched, increment the relevant value in the uidHits list
                break                                #as we've already found the match, …
Run Code Online (Sandbox Code Playgroud)

python design-patterns file matching

12
推荐指数
1
解决办法
8452
查看次数

Python - 缩短if/for循环

我有几行代码用于迭代列表中的dict,我希望缩短它.它的工作原理很完美,但看起来代码太多了,我试图了解如何在Python中保持代码高效(或者一般来说).

for d in dev['devices']:
    if d['name'] == devName:
        devFound = True
        break
Run Code Online (Sandbox Code Playgroud)

'dev'的结构有点令人困惑,但对于我关心的数据:dev(dict)> devices(list)> 0-n(dict)

值'name'是内编号dict中的一个键(根据其他地方的搜索值而变化),需要根据用户输入(devName)进行检查

任何输入都非常赞赏

python iterator for-loop if-statement coding-style

3
推荐指数
1
解决办法
1299
查看次数