Python嵌套循环不循环

2024-09-27 00:16:47 发布

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

我是一个python初学者,我不能做循环。在

这里是这样的:我有两个csv文件(事件日志)。在

首先被称为bd8结果.csv有4或5条线的结构如下:

2015/10/30 09:53:44,blabla1,259373865,95,F,A1 IP Thers,A1SIP V1 (R),-,,1446195224
2015/10/30 11:03:14,blabla2,259431070,32,F,A7 IP MornOs,A7SIP V1 (R),-,,1446199394
2015/10/30 21:30:59,blabla3,259980991,86,F,A2 IP Hor4ain,A2IP V1 (R),-,,1446237059

第一列是日期,第二列是IP事件(target),最后一列是epoch时间。在

我需要在一个更大的日志文件中找到blabla1、blablabla2和blablabla3以及在这些事件发生前20分钟和之后20分钟关联的事件,并将结果写入csv文件。 我只收集同一个选择器信息的事件(因此,如果。。。)。在

我的代码如下:

^{pr2}$

我的问题是它正确地执行了第一个项目(blabla1),但是没有为blablabla2和blabla3编写任何内容。在

我试过好几种方法,但都吃不消了。在

感谢任何帮助。谢谢您!在


Tags: 文件csvipa1事件结构v1初学者
1条回答
网友
1楼 · 发布于 2024-09-27 00:16:47

reader2上循环一次之后,reader1将被它的for循环耗尽并引发{},并且在连续的循环中不会返回任何内容。在

您应该在每次迭代中获得csv.reader的新实例:

with open('result_'+ namefile + '.csv', 'rb') as master1:
    for row in csv.reader(master1):
        target = row[1]
        lecteur = row[5]
        epoch_ref = int(row[-1])
        with open('epoch_'+ namefile + '.csv', 'rb') as hosts1:
            for row2 in csv.reader(hosts1):
                epoch1 = int(row2[-1])
                lecteur1 = row2[5]
                with open('result_scout' + namefile + '.csv', 'a') as results1:
                     if epoch1 > (epoch_ref - ecart) and epoch1 < (epoch_ref + ecart) and lecteur1 == lecteur:
                        writer1 = csv.writer(results1)
                        writer1.writerow([target]+[sys.argv[1]]+row2)
                        results1.close()

{来自^ a1}:

csv.reader(csvfile)

Return a reader object which will iterate over lines in the given csvfile. csvfile can be any object which supports the iterator protocol and returns a string each time its next() method is called.

这意味着在读取器引发StopIteration之后,它将像耗尽的生成器一样耗尽。在

相关问题 更多 >

    热门问题