Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中读取文件并比较列_Python - Fatal编程技术网

在python中读取文件并比较列

在python中读取文件并比较列,python,Python,例如: 考虑FIL1.1.TXT:的内容 1 0 9227 1152 34 2 2 111 7622 1120 34 2 3 68486 710 1024 14 2 6 265065 3389 800 22 2 7 393152 48438 64 132 3 8 412251 46744 64 132 3 9 430593 50866 256 95 4 10 430730 10770

例如: 考虑FIL1.1.TXT:

的内容
1   0   9227    1152    34  2
2   111 7622    1120    34  2
3   68486   710 1024    14  2
6   265065  3389    800 22  2
7   393152  48438   64  132 3
8   412251  46744   64  132 3
9   430593  50866   256 95  4
10  430730  10770   256 95  4
11  433750  12701   256 14  3
12  437926  2794    64  34  2
13  440070  43  32  96  3
14  440102  44  32  96  3
15  440357  43  32  96  3
16  440545  43  32  96  3
17  440599  43  32  96  3
18  440625  43  32  96  3
19  440999  84  32  96  0
20  441574  44  32  96  3
`````````````````````````````````````````
`````````````````````````````````````````
`````````````````````````````````````````
`````````````````````````````````````````
`````````````````````````````````````````
`````````````````````````````````````````
其中包含具有
6
字段的
n
作业(即,e列(0-5))

现在,举例来说,我把前19份工作作为历史。然后我需要从20日开始阅读,以此类推,比较与历史上上述工作相匹配的
3,4,5
列。 如果它与第20个工作与历史上的6个(13,14,15,16,17,18)工作匹配的示例中的情况相同 现在我需要创建一个只包含column2?的匹配作业列表


有谁能推荐一个python代码,让我可以阅读20st行并与上面的历史进行比较,然后继续
21,22,23-----------------
,直到文件结束……

检查这是否适用于您:

>>> history = {}
>>> historycount = 17
>>> for line in open("filename"):
    job = line.split()
    jobmatch_criteria = '-'.join(job[-3:])
    if historycount > 0:
        history.setdefault(jobmatch_criteria,[]).append(job)
        historycount -= 1
    else:
        print "Job", job[0], "Matched with:", '\n\t'.join(' '.join(i) for i in history[jobmatch_criteria]) if jobmatch_criteria in history else "None"


Job 20 Matched with: 13 440070 43 32 96 3
    14 440102 44 32 96 3
    15 440357 43 32 96 3
    16 440545 43 32 96 3
    17 440599 43 32 96 3
    18 440625 43 32 96 3
Job 21 Matched with: 6 265065 3389 800 22 2
我将其用作测试数据:

1   0   9227    1152    34  2
2   111 7622    1120    34  2
3   68486   710 1024    14  2
6   265065  3389    800 22  2
7   393152  48438   64  132 3
8   412251  46744   64  132 3
9   430593  50866   256 95  4
10  430730  10770   256 95  4
11  433750  12701   256 14  3
12  437926  2794    64  34  2
13  440070  43  32  96  3
14  440102  44  32  96  3
15  440357  43  32  96  3
16  440545  43  32  96  3
17  440599  43  32  96  3
18  440625  43  32  96  3
19  440999  84  32  96  0
20  441574  44  32  96  3
21  265065  3389    800 22  2

请格式化您的代码/文本文件。@SwethaH,请您澄清一下您想要实现什么?哦,我明白了,列计数从零开始。最令人困惑的解释。你的脚本尝试在哪里?你读了20行,存储它们,读了接下来的20行,比较,读了接下来的20行,比较等等。你停留在哪一部分?投了赞成票!!这看起来比我的解决方案更像蟒蛇。谢谢:)@mshsayem谢谢,但第22份工作的历史记录不是固定长度的,第21份工作的历史记录是21份,第23份工作的历史记录是24份,依此类推……请告诉我怎么做……必要时更新
历史记录
字典